Skip to content

Commit 098c127

Browse files
hedietjoaomoreno
andauthored
Adds setting showEmptyDecorations (microsoft#186138)
Co-authored-by: João Moreno <[email protected]>
1 parent 7166282 commit 098c127

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

src/vs/editor/browser/widget/diffEditorWidget2/diffEditorDecorations.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export class DiffEditorDecorations extends Disposable {
3737

3838
const currentMove = this._diffModel.read(reader)!.syncedMovedTexts.read(reader);
3939
const renderIndicators = this._options.renderIndicators.read(reader);
40+
const showEmptyDecorations = this._options.showEmptyDecorations.read(reader);
4041

4142
const originalDecorations: IModelDeltaDecoration[] = [];
4243
const modifiedDecorations: IModelDeltaDecoration[] = [];
@@ -60,8 +61,8 @@ export class DiffEditorDecorations extends Disposable {
6061
continue;
6162
}
6263

63-
originalDecorations.push({ range: i.originalRange, options: i.originalRange.isEmpty() ? diffDeleteDecorationEmpty : diffDeleteDecoration });
64-
modifiedDecorations.push({ range: i.modifiedRange, options: i.modifiedRange.isEmpty() ? diffAddDecorationEmpty : diffAddDecoration });
64+
originalDecorations.push({ range: i.originalRange, options: (i.originalRange.isEmpty() && showEmptyDecorations) ? diffDeleteDecorationEmpty : diffDeleteDecoration });
65+
modifiedDecorations.push({ range: i.modifiedRange, options: (i.modifiedRange.isEmpty() && showEmptyDecorations) ? diffAddDecorationEmpty : diffAddDecoration });
6566
}
6667

6768
if (!m.lineRangeMapping.modifiedRange.isEmpty && this._options.shouldRenderRevertArrows.read(reader) && !currentMove) {

src/vs/editor/browser/widget/diffEditorWidget2/diffEditorOptions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export class DiffEditorOptions {
5353
public readonly diffCodeLens = derived('diffCodeLens', reader => this._options.read(reader).diffCodeLens);
5454
public readonly accessibilityVerbose = derived('accessibilityVerbose', reader => this._options.read(reader).accessibilityVerbose);
5555
public readonly diffAlgorithm = derived('diffAlgorithm', reader => this._options.read(reader).diffAlgorithm);
56+
public readonly showEmptyDecorations = derived('showEmptyDecorations', reader => this._options.read(reader).experimental.showEmptyDecorations!);
5657

5758
public updateOptions(changedOptions: IDiffEditorOptions): void {
5859
const newDiffEditorOptions = validateDiffEditorOptions(changedOptions, this._options.get());
@@ -79,6 +80,7 @@ const diffEditorDefaultOptions: ValidDiffEditorBaseOptions = {
7980
experimental: {
8081
collapseUnchangedRegions: false,
8182
showMoves: false,
83+
showEmptyDecorations: true,
8284
},
8385
isInEmbeddedEditor: false,
8486
};
@@ -102,6 +104,7 @@ function validateDiffEditorOptions(options: Readonly<IDiffEditorOptions>, defaul
102104
experimental: {
103105
collapseUnchangedRegions: validateBooleanOption(options.experimental?.collapseUnchangedRegions, defaults.experimental.collapseUnchangedRegions!),
104106
showMoves: validateBooleanOption(options.experimental?.showMoves, defaults.experimental.showMoves!),
107+
showEmptyDecorations: validateBooleanOption(options.experimental?.showEmptyDecorations, defaults.experimental.showEmptyDecorations!),
105108
},
106109
isInEmbeddedEditor: validateBooleanOption(options.isInEmbeddedEditor, defaults.isInEmbeddedEditor),
107110
};

src/vs/editor/common/config/editorConfigurationSchema.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ const editorConfiguration: IConfigurationNode = {
216216
type: 'boolean',
217217
default: true,
218218
description: nls.localize('useVersion2', "Controls whether the diff editor uses the new or the old implementation."),
219+
},
220+
'diffEditor.experimental.showEmptyDecorations': {
221+
type: 'boolean',
222+
default: true,
223+
description: nls.localize('showEmptyDecorations', "Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted."),
219224
}
220225
}
221226
};

0 commit comments

Comments
 (0)