Skip to content

Commit f087caa

Browse files
authored
Add render side by side setting (microsoft#239188)
1 parent 77ca993 commit f087caa

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4213,6 +4213,8 @@ export interface IInlineSuggestOptions {
42134213
edits?: {
42144214
codeShifting?: boolean;
42154215

4216+
renderSideBySide?: 'never' | 'auto';
4217+
42164218
/**
42174219
* @internal
42184220
*/
@@ -4262,6 +4264,7 @@ class InlineEditorSuggest extends BaseEditorOption<EditorOption.inlineSuggest, I
42624264
enabled: true,
42634265
useMixedLinesDiff: 'forStableInsertions',
42644266
useInterleavedLinesDiff: 'never',
4267+
renderSideBySide: 'auto',
42654268
useGutterIndicator: true,
42664269
codeShifting: true,
42674270
useMultiLineGhostText: true
@@ -4313,6 +4316,16 @@ class InlineEditorSuggest extends BaseEditorOption<EditorOption.inlineSuggest, I
43134316
default: defaults.edits.codeShifting,
43144317
description: nls.localize('inlineSuggest.edits.codeShifting', "Controls whether showing a suggestion will shift the code to make space for the suggestion inline."),
43154318
},
4319+
'editor.inlineSuggest.edits.renderSideBySide': {
4320+
type: 'string',
4321+
default: defaults.edits.renderSideBySide,
4322+
description: nls.localize('inlineSuggest.edits.renderSideBySide', "Controls whether larger suggestions can be shown side by side."),
4323+
enum: ['auto', 'never'],
4324+
enumDescriptions: [
4325+
nls.localize('editor.inlineSuggest.edits.renderSideBySide.auto', "Larger suggestions will show side by side if there is enough space, otherwise they will be shown bellow."),
4326+
nls.localize('editor.inlineSuggest.edits.renderSideBySide.never', "Larger suggestions are never shown side by side and will always be shown bellow."),
4327+
],
4328+
},
43164329
/* 'editor.inlineSuggest.edits.useMultiLineGhostText': {
43174330
type: 'boolean',
43184331
default: defaults.edits.useMultiLineGhostText,
@@ -4350,6 +4363,7 @@ class InlineEditorSuggest extends BaseEditorOption<EditorOption.inlineSuggest, I
43504363
enabled: boolean(input.edits?.enabled, this.defaultValue.edits.enabled),
43514364
useMixedLinesDiff: stringSet(input.edits?.useMixedLinesDiff, this.defaultValue.edits.useMixedLinesDiff, ['never', 'whenPossible', 'forStableInsertions', 'afterJumpWhenPossible']),
43524365
codeShifting: boolean(input.edits?.codeShifting, this.defaultValue.edits.codeShifting),
4366+
renderSideBySide: stringSet(input.edits?.renderSideBySide, this.defaultValue.edits.renderSideBySide, ['never', 'auto']),
43534367
useInterleavedLinesDiff: stringSet(input.edits?.useInterleavedLinesDiff, this.defaultValue.edits.useInterleavedLinesDiff, ['never', 'always', 'afterJump']),
43544368
useGutterIndicator: boolean(input.edits?.useGutterIndicator, this.defaultValue.edits.useGutterIndicator),
43554369
useMultiLineGhostText: boolean(input.edits?.useMultiLineGhostText, this.defaultValue.edits.useMultiLineGhostText),

src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export class InlineEditsView extends Disposable {
3434
private readonly _useMixedLinesDiff = observableCodeEditor(this._editor).getOption(EditorOption.inlineSuggest).map(s => s.edits.useMixedLinesDiff);
3535
private readonly _useInterleavedLinesDiff = observableCodeEditor(this._editor).getOption(EditorOption.inlineSuggest).map(s => s.edits.useInterleavedLinesDiff);
3636
private readonly _useCodeShifting = observableCodeEditor(this._editor).getOption(EditorOption.inlineSuggest).map(s => s.edits.codeShifting);
37+
private readonly _renderSideBySide = observableCodeEditor(this._editor).getOption(EditorOption.inlineSuggest).map(s => s.edits.renderSideBySide);
3738
private readonly _useMultiLineGhostText = observableCodeEditor(this._editor).getOption(EditorOption.inlineSuggest).map(s => s.edits.useMultiLineGhostText);
3839

3940
private _previousView: {
@@ -282,7 +283,11 @@ export class InlineEditsView extends Disposable {
282283
}
283284
}
284285

285-
if (numOriginalLines > 0 && numModifiedLines > 0 && !InlineEditsSideBySideDiff.fitsInsideViewport(this._editor, edit, reader)) {
286+
if (numOriginalLines > 0 && numModifiedLines > 0) {
287+
if (this._renderSideBySide.read(reader) !== 'never' && InlineEditsSideBySideDiff.fitsInsideViewport(this._editor, edit, reader)) {
288+
return 'sideBySide';
289+
}
290+
286291
return 'lineReplacement';
287292
}
288293

0 commit comments

Comments
 (0)