diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 6bbb5bbed76..6eba9469d33 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -994,23 +994,7 @@ export interface IConfigurationChangedEvent { */ export interface IModeSupportChangedEvent { tokenizationSupport:boolean; - occurrencesSupport:boolean; - declarationSupport:boolean; - typeDeclarationSupport:boolean; - navigateTypesSupport:boolean; - referenceSupport:boolean; suggestSupport:boolean; - parameterHintsSupport:boolean; - extraInfoSupport:boolean; - outlineSupport:boolean; - logicalSelectionSupport:boolean; - formattingSupport:boolean; - inplaceReplaceSupport:boolean; - emitOutputSupport:boolean; - linkSupport:boolean; - configSupport:boolean; - quickFixSupport: boolean; - codeLensSupport: boolean; richEditSupport: boolean; } diff --git a/src/vs/editor/common/languages.common.ts b/src/vs/editor/common/languages.common.ts index 9a688fbc112..a1bf9e0a4f8 100644 --- a/src/vs/editor/common/languages.common.ts +++ b/src/vs/editor/common/languages.common.ts @@ -35,7 +35,6 @@ import 'vs/editor/common/modes/abstractState'; import 'vs/editor/common/modes/monarch/monarch'; import 'vs/editor/common/modes/monarch/monarchCompile'; import 'vs/editor/common/modes/supports/declarationSupport'; -import 'vs/editor/common/modes/supports/parameterHintsSupport'; import 'vs/editor/common/modes/supports/referenceSupport'; import 'vs/editor/common/modes/supports/richEditSupport'; import 'vs/editor/common/modes/supports/suggestSupport'; diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 1fcc47db825..bbffae917e7 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -165,6 +165,25 @@ export interface ILineContext { findIndexOfOffset(offset:number): number; } +export enum MutableSupport { + RichEditSupport = 1, + TokenizationSupport = 2, + SuggestSupport = 3 +} +export function mutableSupportToString(registerableSupport:MutableSupport) { + if (registerableSupport === MutableSupport.RichEditSupport) { + return 'richEditSupport'; + } + if (registerableSupport === MutableSupport.TokenizationSupport) { + return 'tokenizationSupport'; + } + if (registerableSupport === MutableSupport.SuggestSupport) { + return 'suggestSupport'; + } + throw new Error('Illegal argument!'); +} + + export interface IMode { getId(): string; @@ -179,7 +198,7 @@ export interface IMode { /** * Register a support by name. Only optional. */ - registerSupport?(support:string, callback:(mode:IMode)=>T): IDisposable; + registerSupport?(support:MutableSupport, callback:(mode:IMode)=>T): IDisposable; /** * Optional adapter to support tokenization. @@ -206,11 +225,6 @@ export interface IMode { */ suggestSupport?:ISuggestSupport; - /** - * Optional adapter to support intellisense. - */ - parameterHintsSupport?:IParameterHintsSupport; - /** * Optional adapter to support showing extra info in tokens. */ @@ -251,16 +265,6 @@ export interface IMode { */ quickFixSupport?:IQuickFixSupport; - /** - * Optional adapter to show code lens - */ - codeLensSupport?:ICodeLensSupport; - - /** - * Optional adapter to support renaming - */ - renameSupport?: IRenameSupport; - /** * Optional adapter to support task running */ @@ -444,7 +448,6 @@ export interface IParameterHints { */ export interface IParameterHintsSupport { getParameterHintsTriggerCharacters(): string[]; - shouldTriggerParameterHints(context: ILineContext, offset: number): boolean; getParameterHints(resource: URI, position: editorCommon.IPosition, triggerCharacter?: string): TPromise; } @@ -760,11 +763,11 @@ export interface IRichEditSupport { export const ReferenceSearchRegistry = new LanguageFeatureRegistry('referenceSupport'); -export const RenameRegistry = new LanguageFeatureRegistry('renameSupport'); +export const RenameRegistry = new LanguageFeatureRegistry(null); export const SuggestRegistry = new LanguageFeatureRegistry('suggestSupport'); -export const ParameterHintsRegistry = new LanguageFeatureRegistry('parameterHintsSupport'); +export const ParameterHintsRegistry = new LanguageFeatureRegistry(null); export const ExtraInfoRegistry = new LanguageFeatureRegistry('extraInfoSupport'); @@ -774,7 +777,7 @@ export const OccurrencesRegistry = new LanguageFeatureRegistry('declarationSupport'); -export const CodeLensRegistry = new LanguageFeatureRegistry('codeLensSupport'); +export const CodeLensRegistry = new LanguageFeatureRegistry(null); export const QuickFixRegistry = new LanguageFeatureRegistry('quickFixSupport'); diff --git a/src/vs/editor/common/modes/abstractMode.ts b/src/vs/editor/common/modes/abstractMode.ts index 7a0ca2d7ec1..61efcea6dcc 100644 --- a/src/vs/editor/common/modes/abstractMode.ts +++ b/src/vs/editor/common/modes/abstractMode.ts @@ -102,16 +102,17 @@ export abstract class AbstractMode implements modes.IMode { return this._eventEmitter.addListener2('modeSupportChanged', callback); } - public registerSupport(support:string, callback:(mode:modes.IMode) => T) : IDisposable { + public registerSupport(supportEnum:modes.MutableSupport, callback:(mode:modes.IMode) => T) : IDisposable { + let supportStr = modes.mutableSupportToString(supportEnum); var supportImpl = callback(this); - this[support] = supportImpl; - this._eventEmitter.emit('modeSupportChanged', _createModeSupportChangedEvent(support)); + this[supportStr] = supportImpl; + this._eventEmitter.emit('modeSupportChanged', _createModeSupportChangedEvent(supportEnum)); return { dispose: () => { - if (this[support] === supportImpl) { - delete this[support]; - this._eventEmitter.emit('modeSupportChanged', _createModeSupportChangedEvent(support)); + if (this[supportStr] === supportImpl) { + delete this[supportStr]; + this._eventEmitter.emit('modeSupportChanged', _createModeSupportChangedEvent(supportEnum)); } } }; @@ -135,11 +136,8 @@ class SimplifiedMode implements modes.IMode { if (this._sourceMode.addSupportChangedListener) { this._sourceMode.addSupportChangedListener((e) => { - if (e.tokenizationSupport || e.richEditSupport) { - this._assignSupports(); - let newEvent = SimplifiedMode._createModeSupportChangedEvent(e); - this._eventEmitter.emit('modeSupportChanged', newEvent); - } + this._assignSupports(); + this._eventEmitter.emit('modeSupportChanged', e); }); } } @@ -156,31 +154,6 @@ class SimplifiedMode implements modes.IMode { this.tokenizationSupport = this._sourceMode.tokenizationSupport; this.richEditSupport = this._sourceMode.richEditSupport; } - - private static _createModeSupportChangedEvent(originalModeEvent:IModeSupportChangedEvent): IModeSupportChangedEvent { - var event:IModeSupportChangedEvent = { - codeLensSupport: false, - tokenizationSupport: originalModeEvent.tokenizationSupport, - occurrencesSupport:false, - declarationSupport:false, - typeDeclarationSupport:false, - navigateTypesSupport:false, - referenceSupport:false, - suggestSupport:false, - parameterHintsSupport:false, - extraInfoSupport:false, - outlineSupport:false, - logicalSelectionSupport:false, - formattingSupport:false, - inplaceReplaceSupport:false, - emitOutputSupport:false, - linkSupport:false, - configSupport:false, - quickFixSupport:false, - richEditSupport: originalModeEvent.richEditSupport, - }; - return event; - } } export var isDigit:(character:string, base:number)=>boolean = (function () { @@ -264,28 +237,25 @@ export class FrankensteinMode extends AbstractMode { } } -function _createModeSupportChangedEvent(...changedSupports: string[]): IModeSupportChangedEvent { - var event:IModeSupportChangedEvent = { - codeLensSupport: false, - tokenizationSupport:false, - occurrencesSupport:false, - declarationSupport:false, - typeDeclarationSupport:false, - navigateTypesSupport:false, - referenceSupport:false, - suggestSupport:false, - parameterHintsSupport:false, - extraInfoSupport:false, - outlineSupport:false, - logicalSelectionSupport:false, - formattingSupport:false, - inplaceReplaceSupport:false, - emitOutputSupport:false, - linkSupport:false, - configSupport:false, - quickFixSupport:false, - richEditSupport: false - }; - changedSupports.forEach(support => event[support] = true); - return event; -} \ No newline at end of file +function _createModeSupportChangedEvent(supportEnum:modes.MutableSupport): IModeSupportChangedEvent { + if (supportEnum === modes.MutableSupport.RichEditSupport) { + return { + richEditSupport: true, + tokenizationSupport: false, + suggestSupport: false, + }; + } else if (supportEnum === modes.MutableSupport.TokenizationSupport) { + return { + richEditSupport: false, + tokenizationSupport: true, + suggestSupport: false, + }; + } else if (supportEnum === modes.MutableSupport.SuggestSupport) { + return { + richEditSupport: false, + tokenizationSupport: false, + suggestSupport: true, + }; + } + throw new Error('Illegal argument!'); +} diff --git a/src/vs/editor/common/modes/supports/parameterHintsSupport.ts b/src/vs/editor/common/modes/supports/parameterHintsSupport.ts deleted file mode 100644 index a2371363fa0..00000000000 --- a/src/vs/editor/common/modes/supports/parameterHintsSupport.ts +++ /dev/null @@ -1,55 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import URI from 'vs/base/common/uri'; -import {TPromise} from 'vs/base/common/winjs.base'; -import {IPosition} from 'vs/editor/common/editorCommon'; -import {ILineContext, IMode, IParameterHints, IParameterHintsSupport} from 'vs/editor/common/modes'; -import {handleEvent, isLineToken} from 'vs/editor/common/modes/supports'; - -export interface IParameterHintsContribution { - triggerCharacters: string[]; - excludeTokens: string[]; - getParameterHints: (resource: URI, position: IPosition) => TPromise; -} - -export class ParameterHintsSupport implements IParameterHintsSupport { - - private _modeId: string; - private contribution: IParameterHintsContribution; - - constructor(modeId: string, contribution: IParameterHintsContribution) { - this._modeId = modeId; - this.contribution = contribution; - } - - public getParameterHintsTriggerCharacters(): string[] - { - return this.contribution.triggerCharacters; - } - - public shouldTriggerParameterHints(context: ILineContext, offset: number): boolean - { - return handleEvent(context, offset, (nestedMode:IMode, context:ILineContext, offset:number) => { - if (this._modeId === nestedMode.getId()) { - if (!Array.isArray(this.contribution.excludeTokens)) { - return true; - } - if (this.contribution.excludeTokens.length === 1 && this.contribution.excludeTokens[0] === '*') { - return false; - } - return !isLineToken(context, offset-1, this.contribution.excludeTokens); - } else if (nestedMode.parameterHintsSupport) { - return nestedMode.parameterHintsSupport.shouldTriggerParameterHints(context, offset); - } else { - return false; - } - }); - } - public getParameterHints(resource: URI, position: IPosition): TPromise { - return this.contribution.getParameterHints(resource, position); - } -} diff --git a/src/vs/editor/common/modes/supports/tokenizationSupport.ts b/src/vs/editor/common/modes/supports/tokenizationSupport.ts index 126d10a9157..a4eb4543602 100644 --- a/src/vs/editor/common/modes/supports/tokenizationSupport.ts +++ b/src/vs/editor/common/modes/supports/tokenizationSupport.ts @@ -239,7 +239,7 @@ export class TokenizationSupport implements modes.ITokenizationSupport, IDisposa } if (e.tokenizationSupport) { emitting = true; - this._mode.registerSupport('tokenizationSupport', (mode) => { + this._mode.registerSupport(modes.MutableSupport.TokenizationSupport, (mode) => { return mode.tokenizationSupport; }); emitting = false; diff --git a/src/vs/editor/common/services/modeServiceImpl.ts b/src/vs/editor/common/services/modeServiceImpl.ts index cebb8d950e6..ad9df855c83 100644 --- a/src/vs/editor/common/services/modeServiceImpl.ts +++ b/src/vs/editor/common/services/modeServiceImpl.ts @@ -25,7 +25,6 @@ import {compile} from 'vs/editor/common/modes/monarch/monarchCompile'; import {createRichEditSupport, createSuggestSupport} from 'vs/editor/common/modes/monarch/monarchDefinition'; import {createTokenizationSupport} from 'vs/editor/common/modes/monarch/monarchLexer'; import {ILanguage} from 'vs/editor/common/modes/monarch/monarchTypes'; -import {DeclarationSupport, IDeclarationContribution} from 'vs/editor/common/modes/supports/declarationSupport'; import {IRichEditConfiguration, RichEditSupport} from 'vs/editor/common/modes/supports/richEditSupport'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {LanguagesRegistry} from 'vs/editor/common/services/languagesRegistry'; @@ -396,16 +395,16 @@ export class ModeServiceImpl implements IModeService { }; } - private _registerModeSupport(mode:modes.IMode, support: string, callback: (mode: modes.IMode) => T): IDisposable { + private _registerModeSupport(mode:modes.IMode, support: modes.MutableSupport, callback: (mode: modes.IMode) => T): IDisposable { if (mode.registerSupport) { return mode.registerSupport(support, callback); } else { - console.warn('Cannot register support ' + support + ' on mode ' + mode.getId() + ' because it does not support it.'); + console.warn('Cannot register support ' + modes.mutableSupportToString(support) + ' on mode ' + mode.getId() + ' because it does not support it.'); return EmptyDisposable; } } - protected registerModeSupport(modeId: string, support: string, callback: (mode: modes.IMode) => T): IDisposable { + protected registerModeSupport(modeId: string, support: modes.MutableSupport, callback: (mode: modes.IMode) => T): IDisposable { if (this._instantiatedModes.hasOwnProperty(modeId)) { return this._registerModeSupport(this._instantiatedModes[modeId], support, callback); } @@ -444,21 +443,16 @@ export class ModeServiceImpl implements IModeService { return this.doRegisterMonarchDefinition(modeId, lexer); } - public registerRichEditSupport(modeId: string, support: IRichEditConfiguration): IDisposable { - return this.registerModeSupport(modeId, 'richEditSupport', (mode) => new RichEditSupport(modeId, mode.richEditSupport, support)); - } - - public registerDeclarativeDeclarationSupport(modeId: string, contribution: IDeclarationContribution): IDisposable { - return this.registerModeSupport(modeId, 'declarationSupport', (mode) => new DeclarationSupport(modeId, contribution)); + return this.registerModeSupport(modeId, modes.MutableSupport.RichEditSupport, (mode) => new RichEditSupport(modeId, mode.richEditSupport, support)); } public registerTokenizationSupport(modeId: string, callback: (mode: modes.IMode) => modes.ITokenizationSupport): IDisposable { - return this.registerModeSupport(modeId, 'tokenizationSupport', callback); + return this.registerModeSupport(modeId, modes.MutableSupport.TokenizationSupport, callback); } public registerTokenizationSupport2(modeId: string, support: modes.ITokenizationSupport2): IDisposable { - return this.registerModeSupport(modeId, 'tokenizationSupport', (mode) => { + return this.registerModeSupport(modeId, modes.MutableSupport.TokenizationSupport, (mode) => { return new TokenizationSupport2Adapter(mode, support); }); } @@ -661,7 +655,7 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl { return combinedDisposable( super.doRegisterMonarchDefinition(modeId, lexer), - this.registerModeSupport(modeId, 'suggestSupport', (mode) => { + this.registerModeSupport(modeId, modes.MutableSupport.SuggestSupport, (mode) => { return createSuggestSupport(modelService, editorWorkerService, modeId, lexer); }) ); diff --git a/src/vs/editor/contrib/codelens/browser/codelens.ts b/src/vs/editor/contrib/codelens/browser/codelens.ts index 9956057da14..ce092017a8c 100644 --- a/src/vs/editor/contrib/codelens/browser/codelens.ts +++ b/src/vs/editor/contrib/codelens/browser/codelens.ts @@ -364,11 +364,6 @@ export class CodeLensContribution implements editorCommon.IEditorContribution { this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelChanged, () => this.onModelChange())); this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelModeChanged, () => this.onModelChange())); - this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelModeSupportChanged, (e: editorCommon.IModeSupportChangedEvent) => { - if (e.codeLensSupport) { - this.onModelChange(); - } - })); this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ConfigurationChanged, (e: editorCommon.IConfigurationChangedEvent) => { let prevIsEnabled = this._isEnabled; this._isEnabled = this._editor.getConfiguration().contribInfo.referenceInfos; diff --git a/src/vs/editor/contrib/format/common/formatActions.ts b/src/vs/editor/contrib/format/common/formatActions.ts index 99b46169a76..efa7520a77a 100644 --- a/src/vs/editor/contrib/format/common/formatActions.ts +++ b/src/vs/editor/contrib/format/common/formatActions.ts @@ -39,11 +39,6 @@ class FormatOnType implements editorCommon.IEditorContribution { this.callOnDispose.push(editor.addListener2(editorCommon.EventType.ConfigurationChanged, () => this.update())); this.callOnDispose.push(editor.addListener2(editorCommon.EventType.ModelChanged, () => this.update())); this.callOnDispose.push(editor.addListener2(editorCommon.EventType.ModelModeChanged, () => this.update())); - this.callOnDispose.push(editor.addListener2(editorCommon.EventType.ModelModeSupportChanged,(e: editorCommon.IModeSupportChangedEvent) => { - if (e.formattingSupport) { - this.update(); - } - })); this.callOnDispose.push(FormatOnTypeRegistry.onDidChange(this.update, this)); } diff --git a/src/vs/editor/contrib/links/browser/links.ts b/src/vs/editor/contrib/links/browser/links.ts index 78f9112efca..0b04f430229 100644 --- a/src/vs/editor/contrib/links/browser/links.ts +++ b/src/vs/editor/contrib/links/browser/links.ts @@ -121,11 +121,6 @@ class LinkDetector { this.listenersToRemove.push(editor.addListener('change', (e:editorCommon.IModelContentChangedEvent) => this.onChange())); this.listenersToRemove.push(editor.addListener(editorCommon.EventType.ModelChanged, (e:editorCommon.IModelContentChangedEvent) => this.onModelChanged())); this.listenersToRemove.push(editor.addListener(editorCommon.EventType.ModelModeChanged, (e:editorCommon.IModelModeChangedEvent) => this.onModelModeChanged())); - this.listenersToRemove.push(editor.addListener(editorCommon.EventType.ModelModeSupportChanged, (e: editorCommon.IModeSupportChangedEvent) => { - if (e.linkSupport) { - this.onModelModeChanged(); - } - })); this.listenersToRemove.push(this.editor.addListener(editorCommon.EventType.MouseUp, (e:IEditorMouseEvent) => this.onEditorMouseUp(e))); this.listenersToRemove.push(this.editor.addListener(editorCommon.EventType.MouseMove, (e:IEditorMouseEvent) => this.onEditorMouseMove(e))); this.listenersToRemove.push(this.editor.addListener(editorCommon.EventType.KeyDown, (e:IKeyboardEvent) => this.onEditorKeyDown(e))); diff --git a/src/vs/editor/contrib/outlineMarker/browser/outlineMarker.ts b/src/vs/editor/contrib/outlineMarker/browser/outlineMarker.ts index d7c1c926633..4705884e972 100644 --- a/src/vs/editor/contrib/outlineMarker/browser/outlineMarker.ts +++ b/src/vs/editor/contrib/outlineMarker/browser/outlineMarker.ts @@ -132,11 +132,6 @@ export class OutlineMarkerContribution implements editorCommon.IEditorContributi this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelChanged, () => this.onChange(true))); this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelModeChanged, () => this.onChange(false))); - this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ModelModeSupportChanged, (e: editorCommon.IModeSupportChangedEvent) => { - if (e.outlineSupport) { - this.onChange(false); - } - })); this._globalToDispose.push(this._editor.addListener2(editorCommon.EventType.ConfigurationChanged,(e: editorCommon.IConfigurationChangedEvent) => { let oldIsEnabled = this._isEnabled; this._isEnabled = this._editor.getConfiguration().contribInfo.outlineMarkers; diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts index 9913c7b29d4..39a6188f47a 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts @@ -9,7 +9,7 @@ import {onUnexpectedError} from 'vs/base/common/errors'; import Event, {Emitter} from 'vs/base/common/event'; import {IDisposable, dispose, Disposable} from 'vs/base/common/lifecycle'; import {TPromise} from 'vs/base/common/winjs.base'; -import {EventType, ICommonCodeEditor, ICursorSelectionChangedEvent, IModeSupportChangedEvent} from 'vs/editor/common/editorCommon'; +import {EventType, ICommonCodeEditor, ICursorSelectionChangedEvent} from 'vs/editor/common/editorCommon'; import {ParameterHintsRegistry, IParameterHints} from 'vs/editor/common/modes'; import {getParameterHints} from '../common/parameterHints'; @@ -45,7 +45,6 @@ export class ParameterHintsModel extends Disposable { this._register(this.editor.addListener2(EventType.ModelChanged, e => this.onModelChanged())); this._register(this.editor.addListener2(EventType.ModelModeChanged, _ => this.onModelChanged())); - this._register(this.editor.addListener2(EventType.ModelModeSupportChanged, e => this.onModeChanged(e))); this._register(this.editor.addListener2(EventType.CursorSelectionChanged, e => this.onCursorChange(e))); this._register(ParameterHintsRegistry.onDidChange(this.onModelChanged, this)); this.onModelChanged(); @@ -110,13 +109,6 @@ export class ParameterHintsModel extends Disposable { this.triggerCharactersListeners = support.getParameterHintsTriggerCharacters().map((ch) => { let listener = this.editor.addTypingListener(ch, () => { - let position = this.editor.getPosition(); - let lineContext = model.getLineContext(position.lineNumber); - - if (!support.shouldTriggerParameterHints(lineContext, position.column - 1)) { - return; - } - this.trigger(ch); }); @@ -124,12 +116,6 @@ export class ParameterHintsModel extends Disposable { }); } - private onModeChanged(e: IModeSupportChangedEvent): void { - if (e.parameterHintsSupport) { - this.onModelChanged(); - } - } - private onCursorChange(e: ICursorSelectionChangedEvent): void { if (e.source === 'mouse') { this.cancel(); diff --git a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts index 23edf07444b..b1cce864412 100644 --- a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts +++ b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts @@ -14,7 +14,7 @@ import URI from 'vs/base/common/uri'; import {TPromise} from 'vs/base/common/winjs.base'; import {IMarker, IMarkerService} from 'vs/platform/markers/common/markers'; import {Range} from 'vs/editor/common/core/range'; -import {EventType, ICursorPositionChangedEvent, IModeSupportChangedEvent, IPosition, IRange} from 'vs/editor/common/editorCommon'; +import {EventType, ICursorPositionChangedEvent, IPosition, IRange} from 'vs/editor/common/editorCommon'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; import {QuickFixRegistry} from 'vs/editor/common/modes'; import {IQuickFix2, getQuickFixes} from '../common/quickFix'; @@ -80,11 +80,6 @@ export class QuickFixModel extends EventEmitter { this.toDispose.push(this.editor.addListener2(EventType.ModelChanged, () => this.onModelChanged())); this.toDispose.push(this.editor.addListener2(EventType.ModelModeChanged, () => this.onModelChanged())); - this.toDispose.push(this.editor.addListener2(EventType.ModelModeSupportChanged, (e: IModeSupportChangedEvent) => { - if (e.quickFixSupport) { - this.onModelChanged(); - } - })); this.toDispose.push(QuickFixRegistry.onDidChange(this.onModelChanged, this)); } diff --git a/src/vs/editor/test/common/modes/tokenization.test.ts b/src/vs/editor/test/common/modes/tokenization.test.ts index 137e7d3823e..0fc67e604c3 100644 --- a/src/vs/editor/test/common/modes/tokenization.test.ts +++ b/src/vs/editor/test/common/modes/tokenization.test.ts @@ -108,13 +108,6 @@ export class SwitchingMode extends MockMode { return EmptyDisposable; } - /** - * Register a support by name. Only optional. - */ - public registerSupport(support:string, callback:(mode:modes.IMode)=>T): IDisposable { - return EmptyDisposable; - } - public getInitialState():modes.IState { return new StateMemorizingLastWord(this, this._switchingModeDescriptor, null); } diff --git a/src/vs/languages/html/common/html.ts b/src/vs/languages/html/common/html.ts index 28889b2b4cd..9e79ce8475b 100644 --- a/src/vs/languages/html/common/html.ts +++ b/src/vs/languages/html/common/html.ts @@ -18,9 +18,7 @@ import * as htmlTokenTypes from 'vs/languages/html/common/htmlTokenTypes'; import {EMPTY_ELEMENTS} from 'vs/languages/html/common/htmlEmptyTagsShared'; import {RichEditSupport} from 'vs/editor/common/modes/supports/richEditSupport'; import {TokenizationSupport, IEnteringNestedModeData, ILeavingNestedModeData, ITokenizationCustomization} from 'vs/editor/common/modes/supports/tokenizationSupport'; -// import {DeclarationSupport} from 'vs/editor/common/modes/supports/declarationSupport'; import {ReferenceSupport} from 'vs/editor/common/modes/supports/referenceSupport'; -import {ParameterHintsSupport} from 'vs/editor/common/modes/supports/parameterHintsSupport'; import {SuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport'; import {IThreadService} from 'vs/platform/thread/common/thread'; import {CancellationToken} from 'vs/base/common/cancellation'; @@ -297,7 +295,6 @@ export class HTMLMode extends AbstractMode impl public occurrencesSupport:Modes.IOccurrencesSupport; public referenceSupport: Modes.IReferenceSupport; public formattingSupport: Modes.IFormattingSupport; - public parameterHintsSupport: Modes.IParameterHintsSupport; public suggestSupport: Modes.ISuggestSupport; public configSupport: Modes.IConfigurationSupport; @@ -327,15 +324,6 @@ export class HTMLMode extends AbstractMode impl tokens: ['invalid'], findReferences: (resource, position, includeDeclaration) => this.findReferences(resource, position, includeDeclaration)}); - this.parameterHintsSupport = new ParameterHintsSupport(this.getId(), { - triggerCharacters: ['(', ','], - excludeTokens: ['*'], - getParameterHints: (resource, position) => this.getParameterHints(resource, position)}); - // TODO@Alex TODO@Joh: there is something off about declaration support of embedded JS in HTML - // this.declarationSupport = new DeclarationSupport(this, { - // tokens: ['invalid'], - // findDeclaration: (resource, position) => this.findDeclaration(resource, position)}); - this.suggestSupport = new SuggestSupport(this.getId(), { triggerCharacters: ['.', ':', '<', '"', '=', '/'], excludeTokens: ['comment'], @@ -518,9 +506,4 @@ export class HTMLMode extends AbstractMode impl public findColorDeclarations(resource:URI):winjs.TPromise<{range:EditorCommon.IRange; value:string; }[]> { return this._worker((w) => w.findColorDeclarations(resource)); } - - static $getParameterHints = OneWorkerAttr(HTMLMode, HTMLMode.prototype.getParameterHints); - public getParameterHints(resource:URI, position:EditorCommon.IPosition):winjs.TPromise { - return this._worker((w) => w.getParameterHints(resource, position)); - } } diff --git a/src/vs/languages/html/common/htmlWorker.ts b/src/vs/languages/html/common/htmlWorker.ts index 73206d12270..1300c1cfb0e 100644 --- a/src/vs/languages/html/common/htmlWorker.ts +++ b/src/vs/languages/html/common/htmlWorker.ts @@ -195,14 +195,6 @@ export class HTMLWorker { }); } - public getParameterHints(resource:URI, position:EditorCommon.IPosition):winjs.TPromise { - return this._delegateToModeAtPosition(resource, position, (isEmbeddedMode, model) => { - if (isEmbeddedMode && model.getMode().parameterHintsSupport) { - return model.getMode().parameterHintsSupport.getParameterHints(model.getAssociatedResource(), position); - } - }); - } - private findMatchingOpenTag(scanner: IHTMLScanner) : string { let closedTags : { [name:string]: number } = {}; let tagClosed = false; diff --git a/src/vs/languages/typescript/common/languageFeatures.ts b/src/vs/languages/typescript/common/languageFeatures.ts index dbd2b1a13aa..7bf511ee54c 100644 --- a/src/vs/languages/typescript/common/languageFeatures.ts +++ b/src/vs/languages/typescript/common/languageFeatures.ts @@ -248,10 +248,6 @@ class ParameterHintsAdapter extends Adapter implements modes.IParameterHintsSupp return ['(', ',']; } - shouldTriggerParameterHints(context: modes.ILineContext, offset: number): boolean { - return true; - } - getParameterHints(resource: URI, position: editor.IPosition, triggerCharacter?: string): TPromise { return this._worker(resource).then(worker => worker.getSignatureHelpItems(resource.toString(), this._positionToOffset(resource, position))).then(info => { diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 54413f99f38..1210e55d82a 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -611,10 +611,6 @@ class ParameterHintsAdapter implements modes.IParameterHintsSupport { getParameterHintsTriggerCharacters(): string[] { throw new Error('illegal state'); } - - shouldTriggerParameterHints(context: modes.ILineContext, offset: number): boolean { - throw new Error('illegal state'); - } } type Adapter = OutlineAdapter | CodeLensAdapter | DeclarationAdapter | ExtraInfoAdapter @@ -1041,9 +1037,6 @@ export class MainThreadLanguageFeatures { }, getParameterHintsTriggerCharacters(): string[] { return triggerCharacter; - }, - shouldTriggerParameterHints(context: modes.ILineContext, offset: number): boolean { - return true; } }); return undefined;