From 8e01f961e80ad9646d512a2628c72b82ed758a39 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 17 Aug 2016 12:10:15 +0200 Subject: [PATCH] remove SuggestModel#accept|onDidAccept --- .../editor/contrib/suggest/browser/suggest.ts | 18 +++++----- .../contrib/suggest/common/suggestModel.ts | 34 ++++--------------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/vs/editor/contrib/suggest/browser/suggest.ts b/src/vs/editor/contrib/suggest/browser/suggest.ts index a330ffe6cb1..e18ee8cb0dd 100644 --- a/src/vs/editor/contrib/suggest/browser/suggest.ts +++ b/src/vs/editor/contrib/suggest/browser/suggest.ts @@ -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 { diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index 4a3be2023f7..df77506ad29 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -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 = new Emitter(); get onDidSuggest(): Event { return this._onDidSuggest.event; } - private _onDidAccept: Emitter = new Emitter(); - get onDidAccept(): Event { 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;