From 5d0eed5f1eb2d2de3a9ed67fbe796707030e7f52 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 10 Jul 2020 11:23:06 +0200 Subject: [PATCH] Expose `diffEditor.codeLens` to VS Code users --- src/vs/editor/browser/widget/diffEditorWidget.ts | 6 ++++++ src/vs/editor/common/config/commonEditorConfig.ts | 5 +++++ .../workbench/browser/parts/editor/textDiffEditor.ts | 11 ++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 2908e7a68d0..3ad36126dc8 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -674,6 +674,12 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE if (typeof newOptions.originalEditable !== 'undefined') { this._originalIsEditable = Boolean(newOptions.originalEditable); } + if (typeof newOptions.originalCodeLens !== 'undefined') { + this._originalCodeLens = Boolean(newOptions.originalCodeLens); + } + if (typeof newOptions.modifiedCodeLens !== 'undefined') { + this._modifiedCodeLens = Boolean(newOptions.modifiedCodeLens); + } this.modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(newOptions, this._modifiedCodeLens)); this.originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(newOptions, this._originalIsEditable, this._originalCodeLens)); diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 7977140a494..121365ddbc6 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -541,6 +541,11 @@ const editorConfiguration: IConfigurationNode = { type: 'boolean', default: true, description: nls.localize('renderIndicators', "Controls whether the diff editor shows +/- indicators for added/removed changes.") + }, + 'diffEditor.codeLens': { + type: 'boolean', + default: false, + description: nls.localize('codeLens', "Controls whether the editor shows CodeLens.") } } }; diff --git a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts index e77000e8702..e03a4159dc4 100644 --- a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts @@ -202,7 +202,16 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditorPan // Handle diff editor specially by merging in diffEditor configuration if (isObject(configuration.diffEditor)) { - objects.mixin(editorConfiguration, configuration.diffEditor); + // User settings defines `diffEditor.codeLens`, but there is also `editor.codeLens`. + // Due to the mixin, the two settings cannot be distinguished anymore. + // + // So we map `diffEditor.codeLens` to `diffEditor.originalCodeLens` and `diffEditor.modifiedCodeLens`. + const diffEditorConfiguration = objects.deepClone(configuration.diffEditor); + diffEditorConfiguration.originalCodeLens = diffEditorConfiguration.codeLens; + diffEditorConfiguration.modifiedCodeLens = diffEditorConfiguration.codeLens; + delete diffEditorConfiguration.codeLens; + + objects.mixin(editorConfiguration, diffEditorConfiguration); } return editorConfiguration; -- GitLab