@codingame/monaco-vscode-views-service-override 2.1.4 → 2.2.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/index.d.ts +11 -9
  2. package/index.js +8 -6
  3. package/package.json +11 -11
  4. package/tools/views.d.ts +102 -0
  5. package/tools/views.js +253 -0
  6. package/views.d.ts +4 -99
  7. package/views.js +52 -280
  8. package/external/rollup-plugin-styles/dist/runtime/inject-css.js +0 -3
  9. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +0 -180
  10. package/vscode/src/vs/base/browser/ui/grid/grid.js +0 -494
  11. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +0 -6
  12. package/vscode/src/vs/base/browser/ui/grid/gridview.js +0 -1112
  13. package/vscode/src/vs/base/common/codicons.d.ts +0 -579
  14. package/vscode/src/vs/platform/webview/common/mimeTypes.js +0 -24
  15. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +0 -64
  16. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +0 -790
  17. package/vscode/src/vs/workbench/browser/actions/listCommands.js +0 -764
  18. package/vscode/src/vs/workbench/browser/layout.d.ts +0 -26
  19. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +0 -612
  20. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +0 -6
  21. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +0 -6
  22. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +0 -150
  23. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +0 -6
  24. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +0 -605
  25. package/vscode/src/vs/workbench/browser/parts/compositePart.js +0 -335
  26. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +0 -223
  27. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +0 -1407
  28. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +0 -186
  29. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +0 -511
  30. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +0 -112
  31. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +0 -1020
  32. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +0 -391
  33. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +0 -6
  34. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +0 -6
  35. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +0 -6
  36. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +0 -645
  37. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +0 -379
  38. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +0 -68
  39. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +0 -146
  40. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +0 -6
  41. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +0 -222
  42. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +0 -299
  43. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +0 -365
  44. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +0 -135
  45. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +0 -6
  46. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +0 -17
  47. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +0 -145
  48. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +0 -214
  49. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +0 -6
  50. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +0 -78
  51. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +0 -63
  52. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +0 -119
  53. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +0 -6
  54. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +0 -79
  55. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +0 -74
  56. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +0 -256
  57. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +0 -99
  58. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +0 -444
  59. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +0 -432
  60. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +0 -786
  61. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +0 -488
  62. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +0 -522
  63. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +0 -152
  64. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +0 -63
  65. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +0 -409
  66. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +0 -6
  67. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +0 -693
  68. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +0 -240
  69. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +0 -77
  70. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +0 -42
  71. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +0 -71
  72. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +0 -348
  73. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +0 -98
  74. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +0 -146
  75. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +0 -105
  76. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +0 -401
  77. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +0 -197
  78. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +0 -41
  79. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +0 -128
  80. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +0 -6
  81. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +0 -612
  82. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +0 -158
  83. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +0 -264
  84. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +0 -173
  85. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +0 -6
  86. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +0 -282
  87. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +0 -360
  88. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +0 -133
  89. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +0 -290
  90. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +0 -96
  91. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +0 -88
  92. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +0 -79
  93. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +0 -648
  94. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +0 -65
  95. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +0 -59
  96. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +0 -142
  97. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +0 -121
  98. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +0 -68
  99. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +0 -235
  100. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +0 -145
  101. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +0 -670
  102. package/vscode/src/vs/workbench/services/history/browser/historyService.js +0 -1484
  103. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +0 -6
  104. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +0 -523
  105. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +0 -101
  106. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +0 -713
  107. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +0 -598
@@ -1,612 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
2
- import { reset } from 'vscode/vscode/vs/base/browser/dom';
3
- import { SerializableGrid } from '../../../../../base/browser/ui/grid/grid.js';
4
- import { Color } from 'vscode/vscode/vs/base/common/color';
5
- import { BugIndicatingError, onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
6
- import { Emitter } from 'vscode/vscode/vs/base/common/event';
7
- import { DisposableStore, MutableDisposable, toDisposable, Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
8
- import { isEqual, basename } from 'vscode/vscode/vs/base/common/resources';
9
- import { isDefined } from 'vscode/vscode/vs/base/common/types';
10
- import './media/mergeEditor.css.js';
11
- import { ICodeEditorService } from 'vscode/vscode/vs/editor/browser/services/codeEditorService';
12
- import { ITextResourceConfigurationService } from 'vscode/vscode/vs/editor/common/services/textResourceConfiguration';
13
- import { localizeWithPath } from 'vscode/vscode/vs/nls';
14
- import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
15
- import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
16
- import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
17
- import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
18
- import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
19
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
20
- import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
21
- import { AbstractTextEditor } from 'vscode/vscode/vs/workbench/browser/parts/editor/textEditor';
22
- import { DEFAULT_EDITOR_ASSOCIATION } from 'vscode/vscode/vs/workbench/common/editor';
23
- import { applyTextEditorOptions } from 'vscode/vscode/vs/workbench/common/editor/editorOptions';
24
- import { readTransientState, writeTransientState } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/toggleWordWrap';
25
- import { MergeEditorInput } from 'vscode/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput';
26
- import { observableConfigValue, PersistentStore, deepMerge, thenIfNotDisposed } from 'vscode/vscode/vs/workbench/contrib/mergeEditor/browser/utils';
27
- import { BaseCodeEditorView } from './editors/baseCodeEditorView.js';
28
- import { ScrollSynchronizer } from './scrollSynchronizer.js';
29
- import { MergeEditorViewModel } from './viewModel.js';
30
- import { ViewZoneComputer } from './viewZones.js';
31
- import { ctxIsMergeEditor, ctxMergeEditorLayout, ctxMergeEditorShowBase, ctxMergeEditorShowBaseAtTop, ctxMergeResultUri, ctxMergeBaseUri, ctxMergeEditorShowNonConflictingChanges } from 'vscode/vscode/vs/workbench/contrib/mergeEditor/common/mergeEditor';
32
- import { settingsSashBorder } from 'vscode/vscode/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry';
33
- import { IEditorGroupsService } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService';
34
- import { RegisteredEditorPriority, IEditorResolverService } from 'vscode/vscode/vs/workbench/services/editor/common/editorResolverService';
35
- import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
36
- import { InputCodeEditorView } from './editors/inputCodeEditorView.js';
37
- import { ResultCodeEditorView } from './editors/resultCodeEditorView.js';
38
- import { observableValue, transaction } from 'vscode/vscode/vs/base/common/observableInternal/base';
39
- import { autorunWithStore, autorun } from 'vscode/vscode/vs/base/common/observableInternal/autorun';
40
-
41
- var MergeEditor_1, MergeEditorLayoutStore_1;
42
- let MergeEditor = class MergeEditor extends AbstractTextEditor {
43
- static { MergeEditor_1 = this; }
44
- static { this.ID = 'mergeEditor'; }
45
- get viewModel() {
46
- return this._viewModel;
47
- }
48
- get inputModel() {
49
- return this._inputModel;
50
- }
51
- get model() {
52
- return this.inputModel.get()?.model;
53
- }
54
- get inputsWritable() {
55
- return !!this._configurationService.getValue('mergeEditor.writableInputs');
56
- }
57
- constructor(instantiation, contextKeyService, telemetryService, storageService, themeService, textResourceConfigurationService, _configurationService, editorService, editorGroupService, fileService, _codeEditorService, configurationService) {
58
- super(MergeEditor_1.ID, telemetryService, instantiation, storageService, textResourceConfigurationService, themeService, editorService, editorGroupService, fileService);
59
- this.contextKeyService = contextKeyService;
60
- this._configurationService = _configurationService;
61
- this._codeEditorService = _codeEditorService;
62
- this.configurationService = configurationService;
63
- this._sessionDisposables = ( new DisposableStore());
64
- this._viewModel = observableValue(this, undefined);
65
- this._grid = this._register(( new MutableDisposable()));
66
- this.input1View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 1, this._viewModel));
67
- this.baseView = observableValue(this, undefined);
68
- this.baseViewOptions = observableValue(this, undefined);
69
- this.input2View = this._register(this.instantiationService.createInstance(InputCodeEditorView, 2, this._viewModel));
70
- this.inputResultView = this._register(this.instantiationService.createInstance(ResultCodeEditorView, this._viewModel));
71
- this._layoutMode = this.instantiationService.createInstance(MergeEditorLayoutStore);
72
- this._layoutModeObs = observableValue(this, this._layoutMode.value);
73
- this._ctxIsMergeEditor = ctxIsMergeEditor.bindTo(this.contextKeyService);
74
- this._ctxUsesColumnLayout = ctxMergeEditorLayout.bindTo(this.contextKeyService);
75
- this._ctxShowBase = ctxMergeEditorShowBase.bindTo(this.contextKeyService);
76
- this._ctxShowBaseAtTop = ctxMergeEditorShowBaseAtTop.bindTo(this.contextKeyService);
77
- this._ctxResultUri = ctxMergeResultUri.bindTo(this.contextKeyService);
78
- this._ctxBaseUri = ctxMergeBaseUri.bindTo(this.contextKeyService);
79
- this._ctxShowNonConflictingChanges = ctxMergeEditorShowNonConflictingChanges.bindTo(this.contextKeyService);
80
- this._inputModel = observableValue(this, undefined);
81
- this.viewZoneComputer = ( new ViewZoneComputer(
82
- this.input1View.editor,
83
- this.input2View.editor,
84
- this.inputResultView.editor
85
- ));
86
- this.codeLensesVisible = observableConfigValue('mergeEditor.showCodeLenses', true, this.configurationService);
87
- this.scrollSynchronizer = this._register(( new ScrollSynchronizer(
88
- this._viewModel,
89
- this.input1View,
90
- this.input2View,
91
- this.baseView,
92
- this.inputResultView,
93
- this._layoutModeObs
94
- )));
95
- this._onDidChangeSizeConstraints = ( new Emitter());
96
- this.onDidChangeSizeConstraints = this._onDidChangeSizeConstraints.event;
97
- this.baseViewDisposables = this._register(( new DisposableStore()));
98
- this.showNonConflictingChangesStore = this.instantiationService.createInstance((PersistentStore), 'mergeEditor/showNonConflictingChanges');
99
- this.showNonConflictingChanges = observableValue(this, this.showNonConflictingChangesStore.get() ?? false);
100
- }
101
- dispose() {
102
- this._sessionDisposables.dispose();
103
- this._ctxIsMergeEditor.reset();
104
- this._ctxUsesColumnLayout.reset();
105
- this._ctxShowNonConflictingChanges.reset();
106
- super.dispose();
107
- }
108
- get minimumWidth() {
109
- return this._layoutMode.value.kind === 'mixed'
110
- ? this.input1View.view.minimumWidth + this.input2View.view.minimumWidth
111
- : this.input1View.view.minimumWidth + this.input2View.view.minimumWidth + this.inputResultView.view.minimumWidth;
112
- }
113
- getTitle() {
114
- if (this.input) {
115
- return this.input.getName();
116
- }
117
- return ( localizeWithPath(
118
- 'vs/workbench/contrib/mergeEditor/browser/view/mergeEditor',
119
- 'mergeEditor',
120
- "Text Merge Editor"
121
- ));
122
- }
123
- createEditorControl(parent, initialOptions) {
124
- this.rootHtmlElement = parent;
125
- parent.classList.add('merge-editor');
126
- this.applyLayout(this._layoutMode.value);
127
- this.applyOptions(initialOptions);
128
- }
129
- updateEditorControlOptions(options) {
130
- this.applyOptions(options);
131
- }
132
- applyOptions(options) {
133
- const inputOptions = deepMerge(options, {
134
- minimap: { enabled: false },
135
- glyphMargin: false,
136
- lineNumbersMinChars: 2,
137
- readOnly: !this.inputsWritable
138
- });
139
- this.input1View.updateOptions(inputOptions);
140
- this.input2View.updateOptions(inputOptions);
141
- this.baseViewOptions.set({ ...this.input2View.editor.getRawOptions() }, undefined);
142
- this.inputResultView.updateOptions(options);
143
- }
144
- getMainControl() {
145
- return this.inputResultView.editor;
146
- }
147
- layout(dimension) {
148
- this._grid.value?.layout(dimension.width, dimension.height);
149
- }
150
- async setInput(input, options, context, token) {
151
- if (!(input instanceof MergeEditorInput)) {
152
- throw new BugIndicatingError('ONLY MergeEditorInput is supported');
153
- }
154
- await super.setInput(input, options, context, token);
155
- this._sessionDisposables.clear();
156
- transaction(tx => {
157
- this._viewModel.set(undefined, tx);
158
- this._inputModel.set(undefined, tx);
159
- });
160
- const inputModel = await input.resolve();
161
- const model = inputModel.model;
162
- const viewModel = this.instantiationService.createInstance(MergeEditorViewModel, model, this.input1View, this.input2View, this.inputResultView, this.baseView, this.showNonConflictingChanges);
163
- model.telemetry.reportMergeEditorOpened({
164
- combinableConflictCount: model.combinableConflictCount,
165
- conflictCount: model.conflictCount,
166
- baseTop: this._layoutModeObs.get().showBaseAtTop,
167
- baseVisible: this._layoutModeObs.get().showBase,
168
- isColumnView: this._layoutModeObs.get().kind === 'columns',
169
- });
170
- transaction(tx => {
171
- this._viewModel.set(viewModel, tx);
172
- this._inputModel.set(inputModel, tx);
173
- });
174
- this._sessionDisposables.add(viewModel);
175
- this._ctxResultUri.set(( inputModel.resultUri.toString()));
176
- this._ctxBaseUri.set(( model.base.uri.toString()));
177
- this._sessionDisposables.add(toDisposable(() => {
178
- this._ctxBaseUri.reset();
179
- this._ctxResultUri.reset();
180
- }));
181
- this._sessionDisposables.add(autorunWithStore((reader, store) => {
182
- const baseView = this.baseView.read(reader);
183
- this.inputResultView.editor.changeViewZones(resultViewZoneAccessor => {
184
- const layout = this._layoutModeObs.read(reader);
185
- const shouldAlignResult = layout.kind === 'columns';
186
- const shouldAlignBase = layout.kind === 'mixed' && !layout.showBaseAtTop;
187
- this.input1View.editor.changeViewZones(input1ViewZoneAccessor => {
188
- this.input2View.editor.changeViewZones(input2ViewZoneAccessor => {
189
- if (baseView) {
190
- baseView.editor.changeViewZones(baseViewZoneAccessor => {
191
- store.add(this.setViewZones(reader, viewModel, this.input1View.editor, input1ViewZoneAccessor, this.input2View.editor, input2ViewZoneAccessor, baseView.editor, baseViewZoneAccessor, shouldAlignBase, this.inputResultView.editor, resultViewZoneAccessor, shouldAlignResult));
192
- });
193
- }
194
- else {
195
- store.add(this.setViewZones(reader, viewModel, this.input1View.editor, input1ViewZoneAccessor, this.input2View.editor, input2ViewZoneAccessor, undefined, undefined, false, this.inputResultView.editor, resultViewZoneAccessor, shouldAlignResult));
196
- }
197
- });
198
- });
199
- });
200
- this.scrollSynchronizer.updateScrolling();
201
- }));
202
- const viewState = this.loadEditorViewState(input, context);
203
- if (viewState) {
204
- this._applyViewState(viewState);
205
- }
206
- else {
207
- this._sessionDisposables.add(thenIfNotDisposed(model.onInitialized, () => {
208
- const firstConflict = model.modifiedBaseRanges.get().find(r => r.isConflicting);
209
- if (!firstConflict) {
210
- return;
211
- }
212
- this.input1View.editor.revealLineInCenter(firstConflict.input1Range.startLineNumber);
213
- transaction(tx => {
214
- viewModel.setActiveModifiedBaseRange(firstConflict, tx);
215
- });
216
- }));
217
- }
218
- const mirrorWordWrapTransientState = (candidate) => {
219
- const candidateState = readTransientState(candidate, this._codeEditorService);
220
- writeTransientState(model.input2.textModel, candidateState, this._codeEditorService);
221
- writeTransientState(model.input1.textModel, candidateState, this._codeEditorService);
222
- writeTransientState(model.resultTextModel, candidateState, this._codeEditorService);
223
- const baseTextModel = this.baseView.get()?.editor.getModel();
224
- if (baseTextModel) {
225
- writeTransientState(baseTextModel, candidateState, this._codeEditorService);
226
- }
227
- };
228
- this._sessionDisposables.add(this._codeEditorService.onDidChangeTransientModelProperty(candidate => {
229
- mirrorWordWrapTransientState(candidate);
230
- }));
231
- mirrorWordWrapTransientState(this.inputResultView.editor.getModel());
232
- const that = this;
233
- this._sessionDisposables.add(new (class {
234
- constructor() {
235
- this._disposable = ( new DisposableStore());
236
- for (const model of this.baseInput1Input2()) {
237
- this._disposable.add(model.onDidChangeContent(() => this._checkBaseInput1Input2AllEmpty()));
238
- }
239
- }
240
- dispose() {
241
- this._disposable.dispose();
242
- }
243
- *baseInput1Input2() {
244
- yield model.base;
245
- yield model.input1.textModel;
246
- yield model.input2.textModel;
247
- }
248
- _checkBaseInput1Input2AllEmpty() {
249
- for (const model of this.baseInput1Input2()) {
250
- if (model.getValueLength() > 0) {
251
- return;
252
- }
253
- }
254
- that.editorService.replaceEditors([{ editor: input, replacement: { resource: input.result, options: { preserveFocus: true } }, forceReplaceDirty: true }], that.group ?? that.editorGroupService.activeGroup);
255
- }
256
- }));
257
- }
258
- setViewZones(reader, viewModel, input1Editor, input1ViewZoneAccessor, input2Editor, input2ViewZoneAccessor, baseEditor, baseViewZoneAccessor, shouldAlignBase, resultEditor, resultViewZoneAccessor, shouldAlignResult) {
259
- const input1ViewZoneIds = [];
260
- const input2ViewZoneIds = [];
261
- const baseViewZoneIds = [];
262
- const resultViewZoneIds = [];
263
- const viewZones = this.viewZoneComputer.computeViewZones(reader, viewModel, {
264
- codeLensesVisible: this.codeLensesVisible.read(reader),
265
- showNonConflictingChanges: this.showNonConflictingChanges.read(reader),
266
- shouldAlignBase,
267
- shouldAlignResult,
268
- });
269
- const disposableStore = ( new DisposableStore());
270
- if (baseViewZoneAccessor) {
271
- for (const v of viewZones.baseViewZones) {
272
- v.create(baseViewZoneAccessor, baseViewZoneIds, disposableStore);
273
- }
274
- }
275
- for (const v of viewZones.resultViewZones) {
276
- v.create(resultViewZoneAccessor, resultViewZoneIds, disposableStore);
277
- }
278
- for (const v of viewZones.input1ViewZones) {
279
- v.create(input1ViewZoneAccessor, input1ViewZoneIds, disposableStore);
280
- }
281
- for (const v of viewZones.input2ViewZones) {
282
- v.create(input2ViewZoneAccessor, input2ViewZoneIds, disposableStore);
283
- }
284
- disposableStore.add({
285
- dispose: () => {
286
- input1Editor.changeViewZones(a => {
287
- for (const zone of input1ViewZoneIds) {
288
- a.removeZone(zone);
289
- }
290
- });
291
- input2Editor.changeViewZones(a => {
292
- for (const zone of input2ViewZoneIds) {
293
- a.removeZone(zone);
294
- }
295
- });
296
- baseEditor?.changeViewZones(a => {
297
- for (const zone of baseViewZoneIds) {
298
- a.removeZone(zone);
299
- }
300
- });
301
- resultEditor.changeViewZones(a => {
302
- for (const zone of resultViewZoneIds) {
303
- a.removeZone(zone);
304
- }
305
- });
306
- }
307
- });
308
- return disposableStore;
309
- }
310
- setOptions(options) {
311
- super.setOptions(options);
312
- if (options) {
313
- applyTextEditorOptions(options, this.inputResultView.editor, 0 );
314
- }
315
- }
316
- clearInput() {
317
- super.clearInput();
318
- this._sessionDisposables.clear();
319
- for (const { editor } of [this.input1View, this.input2View, this.inputResultView]) {
320
- editor.setModel(null);
321
- }
322
- }
323
- focus() {
324
- super.focus();
325
- (this.getControl() ?? this.inputResultView.editor).focus();
326
- }
327
- hasFocus() {
328
- for (const { editor } of [this.input1View, this.input2View, this.inputResultView]) {
329
- if (editor.hasTextFocus()) {
330
- return true;
331
- }
332
- }
333
- return super.hasFocus();
334
- }
335
- setEditorVisible(visible, group) {
336
- super.setEditorVisible(visible, group);
337
- for (const { editor } of [this.input1View, this.input2View, this.inputResultView]) {
338
- if (visible) {
339
- editor.onVisible();
340
- }
341
- else {
342
- editor.onHide();
343
- }
344
- }
345
- this._ctxIsMergeEditor.set(visible);
346
- }
347
- getControl() {
348
- return this.inputResultView.editor;
349
- }
350
- get scopedContextKeyService() {
351
- const control = this.getControl();
352
- return control?.invokeWithinContext(accessor => accessor.get(IContextKeyService));
353
- }
354
- toggleBase() {
355
- this.setLayout({
356
- ...this._layoutMode.value,
357
- showBase: !this._layoutMode.value.showBase
358
- });
359
- }
360
- toggleShowBaseTop() {
361
- const showBaseTop = this._layoutMode.value.showBase && this._layoutMode.value.showBaseAtTop;
362
- this.setLayout({
363
- ...this._layoutMode.value,
364
- showBaseAtTop: true,
365
- showBase: !showBaseTop,
366
- });
367
- }
368
- toggleShowBaseCenter() {
369
- const showBaseCenter = this._layoutMode.value.showBase && !this._layoutMode.value.showBaseAtTop;
370
- this.setLayout({
371
- ...this._layoutMode.value,
372
- showBaseAtTop: false,
373
- showBase: !showBaseCenter,
374
- });
375
- }
376
- setLayoutKind(kind) {
377
- this.setLayout({
378
- ...this._layoutMode.value,
379
- kind
380
- });
381
- }
382
- setLayout(newLayout) {
383
- const value = this._layoutMode.value;
384
- if (JSON.stringify(value) === JSON.stringify(newLayout)) {
385
- return;
386
- }
387
- this.model?.telemetry.reportLayoutChange({
388
- baseTop: newLayout.showBaseAtTop,
389
- baseVisible: newLayout.showBase,
390
- isColumnView: newLayout.kind === 'columns',
391
- });
392
- this.applyLayout(newLayout);
393
- }
394
- applyLayout(layout) {
395
- transaction(tx => {
396
- if (layout.showBase && !this.baseView.get()) {
397
- this.baseViewDisposables.clear();
398
- const baseView = this.baseViewDisposables.add(this.instantiationService.createInstance(BaseCodeEditorView, this.viewModel));
399
- this.baseViewDisposables.add(autorun(reader => {
400
- const options = this.baseViewOptions.read(reader);
401
- if (options) {
402
- baseView.updateOptions(options);
403
- }
404
- }));
405
- this.baseView.set(baseView, tx);
406
- }
407
- else if (!layout.showBase && this.baseView.get()) {
408
- this.baseView.set(undefined, tx);
409
- this.baseViewDisposables.clear();
410
- }
411
- if (layout.kind === 'mixed') {
412
- this.setGrid([
413
- layout.showBaseAtTop && layout.showBase ? {
414
- size: 38,
415
- data: this.baseView.get().view
416
- } : undefined,
417
- {
418
- size: 38,
419
- groups: [
420
- { data: this.input1View.view },
421
- !layout.showBaseAtTop && layout.showBase ? { data: this.baseView.get().view } : undefined,
422
- { data: this.input2View.view }
423
- ].filter(isDefined)
424
- },
425
- {
426
- size: 62,
427
- data: this.inputResultView.view
428
- },
429
- ].filter(isDefined));
430
- }
431
- else if (layout.kind === 'columns') {
432
- this.setGrid([
433
- layout.showBase ? {
434
- size: 40,
435
- data: this.baseView.get().view
436
- } : undefined,
437
- {
438
- size: 60,
439
- groups: [{ data: this.input1View.view }, { data: this.inputResultView.view }, { data: this.input2View.view }]
440
- },
441
- ].filter(isDefined));
442
- }
443
- this._layoutMode.value = layout;
444
- this._ctxUsesColumnLayout.set(layout.kind);
445
- this._ctxShowBase.set(layout.showBase);
446
- this._ctxShowBaseAtTop.set(layout.showBaseAtTop);
447
- this._onDidChangeSizeConstraints.fire();
448
- this._layoutModeObs.set(layout, tx);
449
- });
450
- }
451
- setGrid(descriptor) {
452
- let width = -1;
453
- let height = -1;
454
- if (this._grid.value) {
455
- width = this._grid.value.width;
456
- height = this._grid.value.height;
457
- }
458
- this._grid.value = SerializableGrid.from({
459
- orientation: 0 ,
460
- size: 100,
461
- groups: descriptor,
462
- }, {
463
- styles: { separatorBorder: this.theme.getColor(settingsSashBorder) ?? Color.transparent },
464
- proportionalLayout: true
465
- });
466
- reset(this.rootHtmlElement, this._grid.value.element);
467
- if (width !== -1) {
468
- this._grid.value.layout(width, height);
469
- }
470
- }
471
- _applyViewState(state) {
472
- if (!state) {
473
- return;
474
- }
475
- this.inputResultView.editor.restoreViewState(state);
476
- if (state.input1State) {
477
- this.input1View.editor.restoreViewState(state.input1State);
478
- }
479
- if (state.input2State) {
480
- this.input2View.editor.restoreViewState(state.input2State);
481
- }
482
- if (state.focusIndex >= 0) {
483
- [this.input1View.editor, this.input2View.editor, this.inputResultView.editor][state.focusIndex].focus();
484
- }
485
- }
486
- computeEditorViewState(resource) {
487
- if (!isEqual(this.inputModel.get()?.resultUri, resource)) {
488
- return undefined;
489
- }
490
- const result = this.inputResultView.editor.saveViewState();
491
- if (!result) {
492
- return undefined;
493
- }
494
- const input1State = this.input1View.editor.saveViewState() ?? undefined;
495
- const input2State = this.input2View.editor.saveViewState() ?? undefined;
496
- const focusIndex = [this.input1View.editor, this.input2View.editor, this.inputResultView.editor].findIndex(editor => editor.hasWidgetFocus());
497
- return { ...result, input1State, input2State, focusIndex };
498
- }
499
- tracksEditorViewState(input) {
500
- return input instanceof MergeEditorInput;
501
- }
502
- toggleShowNonConflictingChanges() {
503
- this.showNonConflictingChanges.set(!this.showNonConflictingChanges.get(), undefined);
504
- this.showNonConflictingChangesStore.set(this.showNonConflictingChanges.get());
505
- this._ctxShowNonConflictingChanges.set(this.showNonConflictingChanges.get());
506
- }
507
- };
508
- MergeEditor = MergeEditor_1 = ( __decorate([
509
- ( __param(0, IInstantiationService)),
510
- ( __param(1, IContextKeyService)),
511
- ( __param(2, ITelemetryService)),
512
- ( __param(3, IStorageService)),
513
- ( __param(4, IThemeService)),
514
- ( __param(5, ITextResourceConfigurationService)),
515
- ( __param(6, IConfigurationService)),
516
- ( __param(7, IEditorService)),
517
- ( __param(8, IEditorGroupsService)),
518
- ( __param(9, IFileService)),
519
- ( __param(10, ICodeEditorService)),
520
- ( __param(11, IConfigurationService))
521
- ], MergeEditor));
522
- let MergeEditorLayoutStore = class MergeEditorLayoutStore {
523
- static { MergeEditorLayoutStore_1 = this; }
524
- static { this._key = 'mergeEditor/layout'; }
525
- constructor(_storageService) {
526
- this._storageService = _storageService;
527
- this._value = { kind: 'mixed', showBase: false, showBaseAtTop: true };
528
- const value = _storageService.get(MergeEditorLayoutStore_1._key, 0 , 'mixed');
529
- if (value === 'mixed' || value === 'columns') {
530
- this._value = { kind: value, showBase: false, showBaseAtTop: true };
531
- }
532
- else if (value) {
533
- try {
534
- this._value = JSON.parse(value);
535
- }
536
- catch (e) {
537
- onUnexpectedError(e);
538
- }
539
- }
540
- }
541
- get value() {
542
- return this._value;
543
- }
544
- set value(value) {
545
- if (this._value !== value) {
546
- this._value = value;
547
- this._storageService.store(MergeEditorLayoutStore_1._key, JSON.stringify(this._value), 0 , 0 );
548
- }
549
- }
550
- };
551
- MergeEditorLayoutStore = MergeEditorLayoutStore_1 = ( __decorate([
552
- ( __param(0, IStorageService))
553
- ], MergeEditorLayoutStore));
554
- let MergeEditorOpenHandlerContribution = class MergeEditorOpenHandlerContribution extends Disposable {
555
- constructor(_editorService, codeEditorService) {
556
- super();
557
- this._editorService = _editorService;
558
- this._store.add(codeEditorService.registerCodeEditorOpenHandler(this.openCodeEditorFromMergeEditor.bind(this)));
559
- }
560
- async openCodeEditorFromMergeEditor(input, _source, sideBySide) {
561
- const activePane = this._editorService.activeEditorPane;
562
- if (!sideBySide
563
- && input.options
564
- && activePane instanceof MergeEditor
565
- && activePane.getControl()
566
- && activePane.input instanceof MergeEditorInput
567
- && isEqual(input.resource, activePane.input.result)) {
568
- const targetEditor = activePane.getControl();
569
- applyTextEditorOptions(input.options, targetEditor, 0 );
570
- return targetEditor;
571
- }
572
- return null;
573
- }
574
- };
575
- MergeEditorOpenHandlerContribution = ( __decorate([
576
- ( __param(0, IEditorService)),
577
- ( __param(1, ICodeEditorService))
578
- ], MergeEditorOpenHandlerContribution));
579
- let MergeEditorResolverContribution = class MergeEditorResolverContribution extends Disposable {
580
- constructor(editorResolverService, instantiationService) {
581
- super();
582
- const mergeEditorInputFactory = (mergeEditor) => {
583
- return {
584
- editor: instantiationService.createInstance(MergeEditorInput, mergeEditor.base.resource, {
585
- uri: mergeEditor.input1.resource,
586
- title: mergeEditor.input1.label ?? basename(mergeEditor.input1.resource),
587
- description: mergeEditor.input1.description ?? '',
588
- detail: mergeEditor.input1.detail
589
- }, {
590
- uri: mergeEditor.input2.resource,
591
- title: mergeEditor.input2.label ?? basename(mergeEditor.input2.resource),
592
- description: mergeEditor.input2.description ?? '',
593
- detail: mergeEditor.input2.detail
594
- }, mergeEditor.result.resource)
595
- };
596
- };
597
- this._register(editorResolverService.registerEditor(`*`, {
598
- id: DEFAULT_EDITOR_ASSOCIATION.id,
599
- label: DEFAULT_EDITOR_ASSOCIATION.displayName,
600
- detail: DEFAULT_EDITOR_ASSOCIATION.providerDisplayName,
601
- priority: RegisteredEditorPriority.builtin
602
- }, {}, {
603
- createMergeEditorInput: mergeEditorInputFactory
604
- }));
605
- }
606
- };
607
- MergeEditorResolverContribution = ( __decorate([
608
- ( __param(0, IEditorResolverService)),
609
- ( __param(1, IInstantiationService))
610
- ], MergeEditorResolverContribution));
611
-
612
- export { MergeEditor, MergeEditorOpenHandlerContribution, MergeEditorResolverContribution };