remove SuggestModel#accept|onDidAccept
This commit is contained in:
parent
1a5e5e43c5
commit
8e01f961e8
|
@ -16,7 +16,7 @@ import { editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEdit
|
|||
import { ISuggestSupport, SuggestRegistry } from 'vs/editor/common/modes';
|
||||
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { EditorBrowserRegistry } from 'vs/editor/browser/editorBrowserExtensions';
|
||||
import { getSnippetController } from 'vs/editor/contrib/snippet/common/snippet';
|
||||
import { getSnippetController, CodeSnippet } from 'vs/editor/contrib/snippet/common/snippet';
|
||||
import { Context as SuggestContext } from 'vs/editor/contrib/suggest/common/suggest';
|
||||
import { SuggestModel } from '../common/suggestModel';
|
||||
import { CompletionItem } from '../common/completionModel';
|
||||
|
@ -54,8 +54,6 @@ export class SuggestController implements IEditorContribution {
|
|||
this.toDispose.push(editor.onDidChangeModelMode(() => this.update()));
|
||||
this.toDispose.push(SuggestRegistry.onDidChange(this.update, this));
|
||||
|
||||
this.toDispose.push(this.model.onDidAccept(e => getSnippetController(this.editor).run(e.snippet, e.overwriteBefore, e.overwriteAfter)));
|
||||
|
||||
this.update();
|
||||
}
|
||||
|
||||
|
@ -78,12 +76,16 @@ export class SuggestController implements IEditorContribution {
|
|||
}
|
||||
|
||||
private onDidSelectItem(item: CompletionItem): void {
|
||||
if (!item) {
|
||||
this.model.cancel();
|
||||
return;
|
||||
if (item) {
|
||||
const {insertText, overwriteBefore, overwriteAfter} = item.suggestion;
|
||||
const columnDelta = this.editor.getPosition().column - this.model.getTriggerPosition().column;
|
||||
|
||||
getSnippetController(this.editor).run(new CodeSnippet(insertText),
|
||||
overwriteBefore + columnDelta,
|
||||
overwriteAfter);
|
||||
}
|
||||
const {overwriteBefore, overwriteAfter} = item.suggestion;
|
||||
this.model.accept(item.suggestion, overwriteBefore, overwriteAfter);
|
||||
|
||||
this.model.cancel();
|
||||
}
|
||||
|
||||
private update(): void {
|
||||
|
|
|
@ -10,8 +10,7 @@ import {IDisposable, dispose} from 'vs/base/common/lifecycle';
|
|||
import {startsWith} from 'vs/base/common/strings';
|
||||
import {TPromise} from 'vs/base/common/winjs.base';
|
||||
import {ICommonCodeEditor, ICursorSelectionChangedEvent, CursorChangeReason, IModel, IPosition} from 'vs/editor/common/editorCommon';
|
||||
import {ISuggestSupport, ISuggestion, SuggestRegistry} from 'vs/editor/common/modes';
|
||||
import {CodeSnippet} from 'vs/editor/contrib/snippet/common/snippet';
|
||||
import {ISuggestSupport, SuggestRegistry} from 'vs/editor/common/modes';
|
||||
import {ISuggestionItem, provideSuggestionItems} from './suggest';
|
||||
import {CompletionModel} from './completionModel';
|
||||
|
||||
|
@ -29,12 +28,6 @@ export interface ISuggestEvent {
|
|||
auto: boolean;
|
||||
}
|
||||
|
||||
export interface IAcceptEvent {
|
||||
snippet: CodeSnippet;
|
||||
overwriteBefore: number;
|
||||
overwriteAfter: number;
|
||||
}
|
||||
|
||||
class Context {
|
||||
|
||||
lineNumber: number;
|
||||
|
@ -169,9 +162,6 @@ export class SuggestModel implements IDisposable {
|
|||
private _onDidSuggest: Emitter<ISuggestEvent> = new Emitter();
|
||||
get onDidSuggest(): Event<ISuggestEvent> { return this._onDidSuggest.event; }
|
||||
|
||||
private _onDidAccept: Emitter<IAcceptEvent> = new Emitter();
|
||||
get onDidAccept(): Event<IAcceptEvent> { return this._onDidAccept.event; }
|
||||
|
||||
constructor(private editor: ICommonCodeEditor) {
|
||||
this.state = State.Idle;
|
||||
this.triggerAutoSuggestPromise = null;
|
||||
|
@ -182,7 +172,7 @@ export class SuggestModel implements IDisposable {
|
|||
this.context = null;
|
||||
|
||||
this.toDispose = [];
|
||||
this.toDispose.push(this._onDidAccept, this._onDidCancel, this._onDidSuggest, this._onDidTrigger);
|
||||
this.toDispose.push(this._onDidCancel, this._onDidSuggest, this._onDidTrigger);
|
||||
this.toDispose.push(this.editor.onDidChangeConfiguration(() => this.onEditorConfigurationChange()));
|
||||
this.toDispose.push(this.editor.onDidChangeCursorSelection(e => this.onCursorChange(e)));
|
||||
this.toDispose.push(this.editor.onDidChangeModel(() => this.cancel()));
|
||||
|
@ -321,6 +311,11 @@ export class SuggestModel implements IDisposable {
|
|||
}).then(null, onUnexpectedError);
|
||||
}
|
||||
|
||||
public getTriggerPosition(): IPosition {
|
||||
const {lineNumber, column} = this.context;
|
||||
return { lineNumber, column };
|
||||
}
|
||||
|
||||
private onNewContext(ctx: Context): void {
|
||||
if (this.context && this.context.isDifferentContext(ctx)) {
|
||||
if (this.context.shouldRetrigger(ctx)) {
|
||||
|
@ -361,21 +356,6 @@ export class SuggestModel implements IDisposable {
|
|||
}
|
||||
}
|
||||
|
||||
accept(suggestion: ISuggestion, overwriteBefore: number, overwriteAfter: number): boolean {
|
||||
if (this.suggestionItems === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this._onDidAccept.fire({
|
||||
snippet: new CodeSnippet(suggestion.insertText),
|
||||
overwriteBefore: overwriteBefore + (this.editor.getPosition().column - this.context.column),
|
||||
overwriteAfter
|
||||
});
|
||||
|
||||
this.cancel();
|
||||
return true;
|
||||
}
|
||||
|
||||
private onEditorConfigurationChange(): void {
|
||||
this.autoSuggestDelay = this.editor.getConfiguration().contribInfo.quickSuggestionsDelay;
|
||||
|
||||
|
|
Loading…
Reference in a new issue