@codingame/monaco-vscode-api 2.1.3 → 2.2.0-next.1

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 (191) hide show
  1. package/README.md +10 -0
  2. package/contributions.js +1 -0
  3. package/extensions.d.ts +6 -3
  4. package/extensions.js +18 -7
  5. package/lifecycle.js +11 -3
  6. package/missing-services.js +55 -10
  7. package/monaco.js +7 -3
  8. package/package.json +8 -8
  9. package/service-override/tools/editor.js +3 -1
  10. package/service-override/tools/views.d.ts +98 -0
  11. package/service-override/tools/views.js +249 -0
  12. package/services.d.ts +4 -2
  13. package/services.js +11 -9
  14. package/vscode/src/vs/base/browser/deviceAccess.js +60 -0
  15. package/vscode/src/vs/base/browser/dom.js +18 -1
  16. package/vscode/src/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
  17. package/vscode/src/vs/base/browser/ui/grid/grid.js +492 -0
  18. package/vscode/src/vs/base/browser/ui/grid/gridview.css.js +4 -0
  19. package/vscode/src/vs/base/browser/ui/grid/gridview.d.ts +1 -0
  20. package/vscode/src/vs/base/browser/ui/grid/gridview.js +1109 -0
  21. package/vscode/src/vs/base/browser/ui/sash/sash.js +9 -1
  22. package/vscode/src/vs/base/browser/ui/splitview/splitview.d.ts +348 -1
  23. package/vscode/src/vs/base/common/async.js +46 -2
  24. package/vscode/src/vs/base/common/codicons.d.ts +579 -0
  25. package/vscode/src/vs/base/common/event.js +11 -2
  26. package/vscode/src/vs/base/common/keybindingParser.js +87 -0
  27. package/vscode/src/vs/base/common/network.js +1 -2
  28. package/vscode/src/vs/base/common/observableInternal/utils.js +1 -1
  29. package/vscode/src/vs/base/common/platform.js +2 -1
  30. package/vscode/src/vs/base/common/scrollable.d.ts +28 -0
  31. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/colors.js +17 -0
  32. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/diffEditorItemTemplate.js +214 -0
  33. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorViewModel.js +84 -0
  34. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidget.js +54 -0
  35. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidgetImpl.js +324 -0
  36. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/objectPool.js +46 -0
  37. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/style.css.js +4 -0
  38. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/utils.js +11 -0
  39. package/vscode/src/vs/platform/keyboardLayout/common/keyboardLayout.js +61 -1
  40. package/vscode/src/vs/platform/languagePacks/common/localizedStrings.js +10 -0
  41. package/vscode/src/vs/platform/log/browser/log.js +24 -0
  42. package/vscode/src/vs/platform/product/common/product.js +1 -2
  43. package/vscode/src/vs/platform/userDataSync/common/abstractSynchronizer.js +772 -0
  44. package/vscode/src/vs/platform/userDataSync/common/userDataSyncStoreService.js +551 -0
  45. package/vscode/src/vs/platform/webview/common/mimeTypes.js +22 -0
  46. package/vscode/src/vs/platform/webview/common/webviewPortMapping.js +62 -0
  47. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +788 -0
  48. package/vscode/src/vs/workbench/browser/actions/listCommands.js +763 -0
  49. package/vscode/src/vs/workbench/browser/layout.d.ts +26 -0
  50. package/vscode/src/vs/workbench/browser/media/style.css.js +1 -1
  51. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +610 -0
  52. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
  53. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
  54. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +148 -0
  55. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/media/auxiliaryBarPart.css.js +4 -0
  56. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +603 -0
  57. package/vscode/src/vs/workbench/browser/parts/compositePart.js +333 -0
  58. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +221 -0
  59. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +1406 -0
  60. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +184 -0
  61. package/vscode/src/vs/workbench/browser/parts/editor/editorDropTarget.js +509 -0
  62. package/vscode/src/vs/workbench/browser/parts/editor/editorPane.d.ts +112 -0
  63. package/vscode/src/vs/workbench/browser/parts/editor/editorPart.js +1018 -0
  64. package/vscode/src/vs/workbench/browser/parts/editor/editorParts.js +389 -0
  65. package/vscode/src/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
  66. package/vscode/src/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
  67. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +4 -0
  68. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
  69. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
  70. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
  71. package/vscode/src/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
  72. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsActions.js +213 -0
  73. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsAlerts.js +73 -0
  74. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +307 -0
  75. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsList.js +226 -0
  76. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsStatus.js +218 -0
  77. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsToasts.js +433 -0
  78. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsViewer.js +436 -0
  79. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +643 -0
  80. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +377 -0
  81. package/vscode/src/vs/workbench/browser/parts/paneCompositePartService.js +66 -0
  82. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +144 -0
  83. package/vscode/src/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
  84. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +220 -0
  85. package/vscode/src/vs/workbench/browser/window.js +239 -5
  86. package/vscode/src/vs/workbench/common/configuration.js +11 -1
  87. package/vscode/src/vs/workbench/common/theme.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +298 -0
  89. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +363 -0
  90. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +133 -0
  91. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
  92. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +90 -0
  93. package/vscode/src/vs/workbench/contrib/comments/browser/commentMenus.js +43 -0
  94. package/vscode/src/vs/workbench/contrib/comments/browser/commentService.js +317 -2
  95. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadRangeDecorator.js +107 -0
  96. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +395 -0
  97. package/vscode/src/vs/workbench/contrib/comments/browser/comments.js +3 -0
  98. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +1277 -0
  99. package/vscode/src/vs/workbench/contrib/comments/browser/commentsFilterOptions.js +17 -0
  100. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +123 -0
  101. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +342 -0
  102. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +451 -0
  103. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +176 -0
  104. package/vscode/src/vs/workbench/contrib/comments/browser/media/panel.css.js +4 -0
  105. package/vscode/src/vs/workbench/contrib/comments/common/commentModel.js +35 -0
  106. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +16 -0
  107. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +143 -0
  108. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditors.js +212 -0
  109. package/vscode/src/vs/workbench/contrib/customEditor/browser/media/customEditor.css.js +4 -0
  110. package/vscode/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.js +76 -0
  111. package/vscode/src/vs/workbench/contrib/customEditor/common/customEditorModelManager.js +61 -0
  112. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +117 -0
  113. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessions.js +62 -0
  114. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpener.contribution.js +5 -0
  115. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +77 -0
  116. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +72 -0
  117. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +254 -0
  118. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +97 -0
  119. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +442 -0
  120. package/vscode/src/vs/workbench/contrib/files/browser/explorerService.js +430 -0
  121. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +784 -0
  122. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +487 -0
  123. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +521 -0
  124. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +150 -0
  125. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +61 -0
  126. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveDocumentService.js +25 -1
  127. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +178 -0
  128. package/vscode/src/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +49 -0
  129. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +408 -0
  130. package/vscode/src/vs/workbench/contrib/languageStatus/browser/media/languageStatus.css.js +4 -0
  131. package/vscode/src/vs/workbench/contrib/limitIndicator/browser/limitIndicator.contribution.js +145 -0
  132. package/vscode/src/vs/workbench/contrib/mappedEdits/common/mappedEdits.contribution.js +22 -0
  133. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +691 -0
  134. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +238 -0
  135. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +76 -0
  136. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorSerializer.js +40 -0
  137. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/colors.js +69 -0
  138. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +346 -0
  139. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editorGutter.js +96 -0
  140. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/baseCodeEditorView.js +144 -0
  141. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/codeEditorView.js +103 -0
  142. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/inputCodeEditorView.js +399 -0
  143. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.js +195 -0
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/fixedZoneWidget.js +39 -0
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/lineAlignment.js +126 -0
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css.js +4 -0
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +611 -0
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/scrollSynchronizer.js +156 -0
  149. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.js +262 -0
  150. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/viewZones.js +171 -0
  151. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffSourceResolverService.js +41 -0
  152. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +317 -0
  153. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/notebookVisibleCellObserver.js +56 -0
  154. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +315 -0
  155. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +193 -0
  156. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +2 -1
  157. package/vscode/src/vs/workbench/contrib/sash/browser/sash.contribution.js +37 -0
  158. package/vscode/src/vs/workbench/contrib/sash/browser/sash.js +39 -0
  159. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +138 -2
  160. package/vscode/src/vs/workbench/contrib/tags/browser/workspaceTagsService.js +12 -0
  161. package/vscode/src/vs/workbench/contrib/tags/common/workspaceTags.js +3 -0
  162. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
  163. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +281 -0
  164. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +358 -0
  165. package/vscode/src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +131 -0
  166. package/vscode/src/vs/workbench/contrib/update/common/update.js +2 -0
  167. package/vscode/src/vs/workbench/contrib/webview/browser/overlayWebview.js +288 -0
  168. package/vscode/src/vs/workbench/contrib/webview/browser/resourceLoading.js +94 -0
  169. package/vscode/src/vs/workbench/contrib/webview/browser/themeing.js +86 -0
  170. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +77 -0
  171. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +646 -0
  172. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindWidget.js +63 -0
  173. package/vscode/src/vs/workbench/contrib/webview/browser/webviewService.js +57 -0
  174. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +140 -0
  175. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +119 -0
  176. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +67 -0
  177. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +233 -0
  178. package/vscode/src/vs/workbench/services/activity/browser/activityService.js +143 -0
  179. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +0 -3
  180. package/vscode/src/vs/workbench/services/driver/browser/driver.js +184 -0
  181. package/vscode/src/vs/workbench/services/editor/browser/editorResolverService.js +668 -0
  182. package/vscode/src/vs/workbench/services/history/browser/historyService.js +1482 -0
  183. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +17 -1
  184. package/vscode/src/vs/workbench/services/lifecycle/common/lifecycle.js +8 -1
  185. package/vscode/src/vs/workbench/services/progress/browser/media/progressService.css.js +4 -0
  186. package/vscode/src/vs/workbench/services/progress/browser/progressService.js +521 -0
  187. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +102 -0
  188. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +296 -0
  189. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +99 -0
  190. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +711 -0
  191. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +596 -0
@@ -0,0 +1,611 @@
1
+ import { __decorate, __param } from '../../../../../../../../external/tslib/tslib.es6.js';
2
+ import { reset } from '../../../../../base/browser/dom.js';
3
+ import { SerializableGrid } from '../../../../../base/browser/ui/grid/grid.js';
4
+ import { Color } from '../../../../../base/common/color.js';
5
+ import { BugIndicatingError, onUnexpectedError } from '../../../../../base/common/errors.js';
6
+ import { Emitter } from '../../../../../base/common/event.js';
7
+ import { DisposableStore, MutableDisposable, toDisposable, Disposable } from '../../../../../base/common/lifecycle.js';
8
+ import { isEqual, basename } from '../../../../../base/common/resources.js';
9
+ import { isDefined } from '../../../../../base/common/types.js';
10
+ import './media/mergeEditor.css.js';
11
+ import { ICodeEditorService } from '../../../../../editor/browser/services/codeEditorService.js';
12
+ import { ITextResourceConfigurationService } from '../../../../../editor/common/services/textResourceConfiguration.js';
13
+ import { localizeWithPath } from '../../../../../nls.js';
14
+ import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js';
15
+ import { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';
16
+ import { IFileService } from '../../../../../platform/files/common/files.js';
17
+ import { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';
18
+ import { IStorageService } from '../../../../../platform/storage/common/storage.js';
19
+ import { ITelemetryService } from '../../../../../platform/telemetry/common/telemetry.js';
20
+ import { IThemeService } from '../../../../../platform/theme/common/themeService.js';
21
+ import '../../../../../../../../override/vs/workbench/browser/parts/editor/textEditor.js';
22
+ import { DEFAULT_EDITOR_ASSOCIATION } from '../../../../common/editor.js';
23
+ import { applyTextEditorOptions } from '../../../../common/editor/editorOptions.js';
24
+ import { readTransientState, writeTransientState } from '../../../codeEditor/browser/toggleWordWrap.js';
25
+ import { MergeEditorInput } from '../mergeEditorInput.js';
26
+ import { observableConfigValue, PersistentStore, thenIfNotDisposed, deepMerge } from '../utils.js';
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 '../../common/mergeEditor.js';
32
+ import { settingsSashBorder } from '../../../preferences/common/settingsEditorColorRegistry.js';
33
+ import { IEditorGroupsService } from '../../../../services/editor/common/editorGroupsService.js';
34
+ import { RegisteredEditorPriority, IEditorResolverService } from '../../../../services/editor/common/editorResolverService.js';
35
+ import { IEditorService } from '../../../../services/editor/common/editorService.js';
36
+ import { InputCodeEditorView } from './editors/inputCodeEditorView.js';
37
+ import { ResultCodeEditorView } from './editors/resultCodeEditorView.js';
38
+ import { observableValue, transaction } from '../../../../../base/common/observableInternal/base.js';
39
+ import { autorunWithStore, autorun } from '../../../../../base/common/observableInternal/autorun.js';
40
+ import { AbstractTextEditor } from '../../../../browser/parts/editor/textEditor.js';
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
+ export { MergeEditor, MergeEditorOpenHandlerContribution, MergeEditorResolverContribution };