diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 634ac25171f..60c32eb4640 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -763,3 +763,5 @@ export interface IRichEditSupport { export const ReferenceSearchRegistry = new LanguageFeatureRegistry('referenceSupport'); export const RenameRegistry = new LanguageFeatureRegistry('renameSupport'); + +export var SuggestRegistry = new LanguageFeatureRegistry('suggestSupport'); diff --git a/src/vs/editor/contrib/suggest/browser/suggest.ts b/src/vs/editor/contrib/suggest/browser/suggest.ts index 7196b07b29c..8424eccdd3a 100644 --- a/src/vs/editor/contrib/suggest/browser/suggest.ts +++ b/src/vs/editor/contrib/suggest/browser/suggest.ts @@ -14,11 +14,11 @@ import {IKeybindingContextKey, IKeybindingService, KbExpr} from 'vs/platform/key import {EditorAction} from 'vs/editor/common/editorAction'; import {EventType, ICommonCodeEditor, IEditorActionDescriptorData, IEditorContribution, IModeSupportChangedEvent} from 'vs/editor/common/editorCommon'; import {CommonEditorRegistry, ContextKey, EditorActionDescriptor} from 'vs/editor/common/editorCommonExtensions'; -import {ISuggestSupport} from 'vs/editor/common/modes'; +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 {ACCEPT_SELECTED_SUGGESTION_CMD, CONTEXT_SUGGEST_WIDGET_VISIBLE, SuggestRegistry} from 'vs/editor/contrib/suggest/common/suggest'; +import {ACCEPT_SELECTED_SUGGESTION_CMD, CONTEXT_SUGGEST_WIDGET_VISIBLE} from 'vs/editor/contrib/suggest/common/suggest'; import {KeybindingsRegistry} from 'vs/platform/keybinding/common/keybindingsRegistry'; import {withCodeEditorFromCommandHandler} from 'vs/editor/common/config/config'; import {SuggestModel} from './suggestModel'; diff --git a/src/vs/editor/contrib/suggest/browser/suggestModel.ts b/src/vs/editor/contrib/suggest/browser/suggestModel.ts index 2f172856918..8d409090d28 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestModel.ts @@ -10,9 +10,9 @@ import {IDisposable, dispose} from 'vs/base/common/lifecycle'; import {startsWith} from 'vs/base/common/strings'; import {TPromise} from 'vs/base/common/winjs.base'; import {EventType, ICommonCodeEditor, ICursorSelectionChangedEvent, IPosition} from 'vs/editor/common/editorCommon'; -import {ISuggestSupport, ISuggestion} from 'vs/editor/common/modes'; +import {ISuggestSupport, ISuggestion, SuggestRegistry} from 'vs/editor/common/modes'; import {CodeSnippet} from 'vs/editor/contrib/snippet/common/snippet'; -import {ISuggestResult2, SuggestRegistry, suggest} from '../common/suggest'; +import {ISuggestResult2, suggest} from '../common/suggest'; import {CompletionModel} from './completionModel'; export interface ICancelEvent { diff --git a/src/vs/editor/contrib/suggest/browser/suggestWidget.ts b/src/vs/editor/contrib/suggest/browser/suggestWidget.ts index 6dd46573943..39c19db482a 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestWidget.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestWidget.ts @@ -22,8 +22,9 @@ import {IInstantiationService} from 'vs/platform/instantiation/common/instantiat import {IKeybindingContextKey, IKeybindingService} from 'vs/platform/keybinding/common/keybindingService'; import {ITelemetryService} from 'vs/platform/telemetry/common/telemetry'; import {EventType, IModeSupportChangedEvent} from 'vs/editor/common/editorCommon'; +import {SuggestRegistry} from 'vs/editor/common/modes'; import {ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition} from 'vs/editor/browser/editorBrowser'; -import {CONTEXT_SUGGESTION_SUPPORTS_ACCEPT_ON_KEY, SuggestRegistry} from '../common/suggest'; +import {CONTEXT_SUGGESTION_SUPPORTS_ACCEPT_ON_KEY} from '../common/suggest'; import {CompletionItem, CompletionModel} from './completionModel'; import {ICancelEvent, ISuggestEvent, ITriggerEvent, SuggestModel} from './suggestModel'; import {alert} from 'vs/base/browser/ui/aria/aria'; diff --git a/src/vs/editor/contrib/suggest/common/suggest.ts b/src/vs/editor/contrib/suggest/common/suggest.ts index 930caee104e..40fe2967317 100644 --- a/src/vs/editor/contrib/suggest/common/suggest.ts +++ b/src/vs/editor/contrib/suggest/common/suggest.ts @@ -10,16 +10,13 @@ import {illegalArgument, onUnexpectedError} from 'vs/base/common/errors'; import {TPromise} from 'vs/base/common/winjs.base'; import {IModel, IPosition} from 'vs/editor/common/editorCommon'; import {CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; -import {ISuggestResult, ISuggestSupport} from 'vs/editor/common/modes'; -import LanguageFeatureRegistry from 'vs/editor/common/modes/languageFeatureRegistry'; +import {ISuggestResult, ISuggestSupport, SuggestRegistry} from 'vs/editor/common/modes'; import {SnippetsRegistry} from 'vs/editor/common/modes/supports'; export var CONTEXT_SUGGEST_WIDGET_VISIBLE = 'suggestWidgetVisible'; export var CONTEXT_SUGGESTION_SUPPORTS_ACCEPT_ON_KEY = 'suggestionSupportsAcceptOnKey'; export var ACCEPT_SELECTED_SUGGESTION_CMD = 'acceptSelectedSuggestion'; -export var SuggestRegistry = new LanguageFeatureRegistry('suggestSupport'); - export interface ISuggestResult2 extends ISuggestResult { support?: ISuggestSupport; } diff --git a/src/vs/languages/typescript/common/languageFeatures.ts b/src/vs/languages/typescript/common/languageFeatures.ts index 61c22f8cfc9..b635f7255c3 100644 --- a/src/vs/languages/typescript/common/languageFeatures.ts +++ b/src/vs/languages/typescript/common/languageFeatures.ts @@ -13,7 +13,6 @@ import * as modes from 'vs/editor/common/modes'; import matches from 'vs/editor/common/modes/languageSelector'; import {IMarkerService, IMarkerData} from 'vs/platform/markers/common/markers'; import {IModelService} from 'vs/editor/common/services/modelService'; -import {SuggestRegistry} from 'vs/editor/contrib/suggest/common/suggest'; import {ParameterHintsRegistry} from 'vs/editor/contrib/parameterHints/common/parameterHints'; import {OccurrencesRegistry} from 'vs/editor/contrib/wordHighlighter/common/wordHighlighter'; import {ExtraInfoRegistry} from 'vs/editor/contrib/hover/common/hover'; @@ -27,7 +26,7 @@ export function register(modelService: IModelService, markerService: IMarkerServ selector: string, defaults:LanguageServiceDefaults, worker: (first: URI, ...more: URI[]) => TPromise): lifecycle.IDisposable { const disposables: lifecycle.IDisposable[] = []; - disposables.push(SuggestRegistry.register(selector, new SuggestAdapter(modelService, worker))); + disposables.push(modes.SuggestRegistry.register(selector, new SuggestAdapter(modelService, worker))); disposables.push(ParameterHintsRegistry.register(selector, new ParameterHintsAdapter(modelService, worker))); disposables.push(ExtraInfoRegistry.register(selector, new QuickInfoAdapter(modelService, worker))); disposables.push(OccurrencesRegistry.register(selector, new OccurrencesAdapter(modelService, worker))); diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 79cff0aa66c..4e49af33477 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -25,7 +25,6 @@ import {NavigateTypesSupportRegistry, INavigateTypesSupport, ITypeBearing} from import {FormatRegistry, FormatOnTypeRegistry} from 'vs/editor/contrib/format/common/format'; import {CodeLensRegistry} from 'vs/editor/contrib/codelens/common/codelens'; import {ParameterHintsRegistry} from 'vs/editor/contrib/parameterHints/common/parameterHints'; -import {SuggestRegistry} from 'vs/editor/contrib/suggest/common/suggest'; import {asWinJsPromise, ShallowCancelThenPromise} from 'vs/base/common/async'; // --- adapter @@ -1022,7 +1021,7 @@ export class MainThreadLanguageFeatures { // --- suggest $registerSuggestSupport(handle: number, selector: vscode.DocumentSelector, triggerCharacters: string[]): TPromise { - this._registrations[handle] = SuggestRegistry.register(selector, { + this._registrations[handle] = modes.SuggestRegistry.register(selector, { suggest: (resource: URI, position: IPosition, triggerCharacter?: string): TPromise => { return this._proxy.$suggest(handle, resource, position); },