|
3 | 3 | * Licensed under the MIT License. See License.txt in the project root for license information.
|
4 | 4 | *--------------------------------------------------------------------------------------------*/
|
5 | 5 |
|
6 |
| -import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; |
7 |
| -import { localize2, localize } from 'vs/nls'; |
8 |
| -import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; |
9 |
| -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; |
| 6 | +import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; |
| 7 | +import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; |
| 8 | +import { localize, localize2 } from 'vs/nls'; |
| 9 | +import { MenuId, MenuRegistry } from 'vs/platform/actions/common/actions'; |
10 | 10 | import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
11 | 11 | import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
12 | 12 | import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
|
13 | 13 | import { TextDiffEditor } from 'vs/workbench/browser/parts/editor/textDiffEditor';
|
14 |
| -import { TextCompareEditorVisibleContext, TextCompareEditorActiveContext, ActiveCompareEditorCanSwapContext } from 'vs/workbench/common/contextkeys'; |
| 14 | +import { ActiveCompareEditorCanSwapContext, TextCompareEditorActiveContext, TextCompareEditorVisibleContext } from 'vs/workbench/common/contextkeys'; |
15 | 15 | import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput';
|
16 | 16 | import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
17 | 17 |
|
@@ -104,17 +104,27 @@ export function registerDiffEditorCommands(): void {
|
104 | 104 | }
|
105 | 105 |
|
106 | 106 | function toggleDiffSideBySide(accessor: ServicesAccessor): void {
|
107 |
| - const configurationService = accessor.get(IConfigurationService); |
| 107 | + const configService = accessor.get(ITextResourceConfigurationService); |
| 108 | + const activeTextDiffEditor = getActiveTextDiffEditor(accessor); |
| 109 | + |
| 110 | + const m = activeTextDiffEditor?.getControl()?.getModifiedEditor()?.getModel(); |
| 111 | + if (!m) { return; } |
108 | 112 |
|
109 |
| - const newValue = !configurationService.getValue('diffEditor.renderSideBySide'); |
110 |
| - configurationService.updateValue('diffEditor.renderSideBySide', newValue); |
| 113 | + const key = 'diffEditor.renderSideBySide'; |
| 114 | + const val = configService.getValue(m.uri, key); |
| 115 | + configService.updateValue(m.uri, key, !val); |
111 | 116 | }
|
112 | 117 |
|
113 | 118 | function toggleDiffIgnoreTrimWhitespace(accessor: ServicesAccessor): void {
|
114 |
| - const configurationService = accessor.get(IConfigurationService); |
| 119 | + const configService = accessor.get(ITextResourceConfigurationService); |
| 120 | + const activeTextDiffEditor = getActiveTextDiffEditor(accessor); |
| 121 | + |
| 122 | + const m = activeTextDiffEditor?.getControl()?.getModifiedEditor()?.getModel(); |
| 123 | + if (!m) { return; } |
115 | 124 |
|
116 |
| - const newValue = !configurationService.getValue('diffEditor.ignoreTrimWhitespace'); |
117 |
| - configurationService.updateValue('diffEditor.ignoreTrimWhitespace', newValue); |
| 125 | + const key = 'diffEditor.ignoreTrimWhitespace'; |
| 126 | + const val = configService.getValue(m.uri, key); |
| 127 | + configService.updateValue(m.uri, key, !val); |
118 | 128 | }
|
119 | 129 |
|
120 | 130 | async function swapDiffSides(accessor: ServicesAccessor): Promise<void> {
|
|
0 commit comments