From bb49af331678dc62467cc0c6b56e18f21fb03346 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 5 Jan 2017 13:10:11 +0100 Subject: [PATCH] Remove model.getMode() --- .../browser/standalone/standaloneEditor.ts | 10 ---------- src/vs/editor/common/commonCodeEditor.ts | 4 ++-- src/vs/editor/common/editorCommon.ts | 7 ------- .../editor/common/model/textModelWithTokens.ts | 6 +----- .../editor/contrib/codelens/browser/codelens.ts | 2 +- .../browser/referencesController.ts | 2 +- src/vs/monaco.d.ts | 6 ------ .../workbench/api/node/mainThreadDocuments.ts | 4 ++-- .../browser/parts/editor/editorStatus.ts | 17 ++++------------- .../debug/browser/debugEditorModelManager.ts | 3 +-- .../debugConfigurationManager.ts | 3 +-- .../quickopen/browser/gotoSymbolHandler.ts | 4 ++-- .../parts/search/browser/replaceService.ts | 5 ++++- 13 files changed, 19 insertions(+), 54 deletions(-) diff --git a/src/vs/editor/browser/standalone/standaloneEditor.ts b/src/vs/editor/browser/standalone/standaloneEditor.ts index 776ec46a520..a59fa9136b1 100644 --- a/src/vs/editor/browser/standalone/standaloneEditor.ts +++ b/src/vs/editor/browser/standalone/standaloneEditor.ts @@ -217,16 +217,6 @@ export function onDidChangeModelLanguage(listener: (e: { readonly model: editorC }); } - -/** - * @internal - */ -export function getOrCreateMode(modeId: string): TPromise { - return StaticServices.modeService.get().getOrCreateMode(modeId); -} - - - /** * Create a new web worker that has model syncing capabilities built in. * Specify an AMD module to load that will `create` an object that will be proxied. diff --git a/src/vs/editor/common/commonCodeEditor.ts b/src/vs/editor/common/commonCodeEditor.ts index 750a49594e0..df7868426ce 100644 --- a/src/vs/editor/common/commonCodeEditor.ts +++ b/src/vs/editor/common/commonCodeEditor.ts @@ -741,7 +741,7 @@ export abstract class CommonCodeEditor extends EventEmitter implements editorCom this.cursor = null; if (this.model) { - this.domElement.setAttribute('data-mode-id', this.model.getMode().getId()); + this.domElement.setAttribute('data-mode-id', this.model.getModeId()); this._configuration.setIsDominatedByLongLines(this.model.isDominatedByLongLines()); this.model.onBeforeAttached(); @@ -878,7 +878,7 @@ export abstract class CommonCodeEditor extends EventEmitter implements editorCom break; case editorCommon.EventType.ModelModeChanged: - this.domElement.setAttribute('data-mode-id', this.model.getMode().getId()); + this.domElement.setAttribute('data-mode-id', this.model.getModeId()); this.emit(editorCommon.EventType.ModelModeChanged, e); break; diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index c5380bb19de..45e2630eac4 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -1868,13 +1868,6 @@ export interface ITokenizedModel extends ITextModel { */ getLineTokens(lineNumber: number, inaccurateTokensAcceptable?: boolean): LineTokens; - /** - * Get the current language mode associated with the model. - * TODO@tokenization - * @deprecated - */ - getMode(): IMode; - /** * Get the language associated with this model. * TODO@tokenization diff --git a/src/vs/editor/common/model/textModelWithTokens.ts b/src/vs/editor/common/model/textModelWithTokens.ts index 392565134e0..1210ced4b07 100644 --- a/src/vs/editor/common/model/textModelWithTokens.ts +++ b/src/vs/editor/common/model/textModelWithTokens.ts @@ -203,12 +203,8 @@ export class TextModelWithTokens extends TextModel implements editorCommon.IToke return this._lines[lineNumber - 1].getTokens(this._languageIdentifier.id, this._colorMap); } - public getMode(): IMode { - return new Mode(this._languageIdentifier); - } - public getModeId(): string { - return this.getMode().getId(); + return this._languageIdentifier.language; } public getLanguageIdentifier(): LanguageIdentifier { diff --git a/src/vs/editor/contrib/codelens/browser/codelens.ts b/src/vs/editor/contrib/codelens/browser/codelens.ts index 80896f67608..2c365e94f3c 100644 --- a/src/vs/editor/contrib/codelens/browser/codelens.ts +++ b/src/vs/editor/contrib/codelens/browser/codelens.ts @@ -401,7 +401,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution { }; const detectVisible = new RunOnceScheduler(() => { - this._onViewportChanged(model.getMode().getId()); + this._onViewportChanged(model.getModeId()); }, 500); const scheduler = new RunOnceScheduler(() => { diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts index 2b81c696f29..982aa37ea2f 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts @@ -188,7 +188,7 @@ export class ReferencesController implements editorCommon.IEditorContribution { onDone(duration => this._telemetryService.publicLog('findReferences', { duration, - mode: this._editor.getModel().getMode().getId() + mode: this._editor.getModel().getModeId() })); } diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 29773a8fef0..901145f97cd 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -2103,12 +2103,6 @@ declare module monaco.editor { * A model that is tokenized. */ export interface ITokenizedModel extends ITextModel { - /** - * Get the current language mode associated with the model. - * TODO@tokenization - * @deprecated - */ - getMode(): languages.IMode; /** * Get the language associated with this model. * TODO@tokenization diff --git a/src/vs/workbench/api/node/mainThreadDocuments.ts b/src/vs/workbench/api/node/mainThreadDocuments.ts index 0777505806d..abbfbd32d3b 100644 --- a/src/vs/workbench/api/node/mainThreadDocuments.ts +++ b/src/vs/workbench/api/node/mainThreadDocuments.ts @@ -106,7 +106,7 @@ export class MainThreadDocuments extends MainThreadDocumentsShape { url: model.uri, versionId: model.getVersionId(), value: model.toRawText(), - modeId: model.getMode().getId(), + modeId: model.getModeId(), isDirty: this._textFileService.isDirty(modelUrl) }); } @@ -117,7 +117,7 @@ export class MainThreadDocuments extends MainThreadDocumentsShape { if (!this._modelIsSynced[modelUrl.toString()]) { return; } - this._proxy.$acceptModelModeChanged(model.uri.toString(), oldModeId, model.getMode().getId()); + this._proxy.$acceptModelModeChanged(model.uri.toString(), oldModeId, model.getModeId()); } private _onModelRemoved(model: editorCommon.IModel): void { diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 1b68117ec4c..8afe2837ca9 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -525,16 +525,9 @@ export class EditorStatus implements IStatusbarItem { if (editorWidget) { const textModel = getTextModel(editorWidget); if (textModel) { - if (typeof textModel.getMode !== 'function') { - console.log(Object.getPrototypeOf(textModel).toString()); - console.log(Object.getOwnPropertyNames(textModel)); - } - // Compute mode - const mode = textModel.getMode(); - if (mode) { - info = { mode: this.modeService.getLanguageName(mode.getId()) }; - } + const modeId = textModel.getModeId(); + info = { mode: this.modeService.getLanguageName(modeId) }; } } @@ -743,10 +736,8 @@ export class ChangeModeAction extends Action { // Compute mode let currentModeId: string; if (textModel) { - const mode = textModel.getMode(); - if (mode) { - currentModeId = this.modeService.getLanguageName(mode.getId()); - } + const modeId = textModel.getModeId(); + currentModeId = this.modeService.getLanguageName(modeId); } // All languages are valid picks diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index dac4d20c36e..8ed9dc763fb 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts @@ -275,8 +275,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution { return DebugEditorModelManager.BREAKPOINT_UNSUPPORTED_DECORATION; } - const mode = modelData ? modelData.model.getMode() : null; - const modeId = mode ? mode.getId() : ''; + const modeId = modelData ? modelData.model.getModeId() : ''; let condition: string; if (breakpoint.condition && breakpoint.hitCondition) { condition = `Expression: ${breakpoint.condition}\nHitCount: ${breakpoint.hitCondition}`; diff --git a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts index 3519e425649..b4e2ed84fcf 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts @@ -383,8 +383,7 @@ export class ConfigurationManager implements debug.IConfigurationManager { return true; } - const mode = model ? model.getMode() : null; - const modeId = mode ? mode.getId() : null; + const modeId = model ? model.getModeId() : null; return !!this.allModeIdsForBreakpoints[modeId]; } diff --git a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts index 18eabe4b04d..ff4bdbcbe24 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts @@ -420,7 +420,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { model = (model).modified; // Support for diff editor models } - if (model && types.isFunction((model).getMode)) { + if (model && types.isFunction((model).getModeId)) { canRun = DocumentSymbolProviderRegistry.has(model); } } @@ -476,7 +476,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { model = (model).modified; // Support for diff editor models } - if (model && types.isFunction((model).getMode)) { + if (model && types.isFunction((model).getModeId)) { // Ask cache first const modelId = (model).id; diff --git a/src/vs/workbench/parts/search/browser/replaceService.ts b/src/vs/workbench/parts/search/browser/replaceService.ts index f396e9f023d..b09da67ea89 100644 --- a/src/vs/workbench/parts/search/browser/replaceService.ts +++ b/src/vs/workbench/parts/search/browser/replaceService.ts @@ -13,6 +13,7 @@ import { IReplaceService } from 'vs/workbench/parts/search/common/replace'; import { IEditorService } from 'vs/platform/editor/common/editor'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IModelService } from 'vs/editor/common/services/modelService'; +import { IModeService } from 'vs/editor/common/services/modeService'; import { Match, FileMatch, FileMatchOrMatch, ISearchWorkbenchService } from 'vs/workbench/parts/search/common/searchModel'; import { BulkEdit, IResourceEdit, createBulkEdit } from 'vs/editor/common/services/bulkEdit'; import { IProgressRunner } from 'vs/platform/progress/common/progress'; @@ -48,6 +49,7 @@ export class ReplacePreviewContentProvider implements ITextModelContentProvider, class ReplacePreviewModel extends Disposable { constructor( @IModelService private modelService: IModelService, + @IModeService private modeService: IModeService, @ITextModelResolverService private textModelResolverService: ITextModelResolverService, @IReplaceService private replaceService: IReplaceService, @ISearchWorkbenchService private searchWorkbenchService: ISearchWorkbenchService @@ -61,7 +63,8 @@ class ReplacePreviewModel extends Disposable { return this.textModelResolverService.createModelReference(fileResource).then(ref => { ref = this._register(ref); const sourceModel = ref.object.textEditorModel; - const replacePreviewModel = this.modelService.createModel(sourceModel.getValue(), sourceModel.getMode(), replacePreviewUri); + const sourceModelModeId = sourceModel.getModeId(); + const replacePreviewModel = this.modelService.createModel(sourceModel.getValue(), this.modeService.getOrCreateMode(sourceModelModeId), replacePreviewUri); this._register(fileMatch.onChange(modelChange => this.update(sourceModel, replacePreviewModel, fileMatch, modelChange))); this._register(this.searchWorkbenchService.searchModel.onReplaceTermChanged(() => this.update(sourceModel, replacePreviewModel, fileMatch))); this._register(fileMatch.onDispose(() => replacePreviewModel.dispose()));