@theia/scm 1.67.0-next.13 → 1.67.0-next.56

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 (218) hide show
  1. package/README.md +1 -1
  2. package/package.json +6 -6
  3. package/lib/browser/decorations/scm-decorations-service.d.ts +0 -21
  4. package/lib/browser/decorations/scm-decorations-service.d.ts.map +0 -1
  5. package/lib/browser/decorations/scm-decorations-service.js +0 -134
  6. package/lib/browser/decorations/scm-decorations-service.js.map +0 -1
  7. package/lib/browser/decorations/scm-navigator-decorator.d.ts +0 -26
  8. package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +0 -1
  9. package/lib/browser/decorations/scm-navigator-decorator.js +0 -122
  10. package/lib/browser/decorations/scm-navigator-decorator.js.map +0 -1
  11. package/lib/browser/dirty-diff/content-lines.d.ts +0 -15
  12. package/lib/browser/dirty-diff/content-lines.d.ts.map +0 -1
  13. package/lib/browser/dirty-diff/content-lines.js +0 -114
  14. package/lib/browser/dirty-diff/content-lines.js.map +0 -1
  15. package/lib/browser/dirty-diff/content-lines.spec.d.ts +0 -2
  16. package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +0 -1
  17. package/lib/browser/dirty-diff/content-lines.spec.js +0 -40
  18. package/lib/browser/dirty-diff/content-lines.spec.js.map +0 -1
  19. package/lib/browser/dirty-diff/diff-computer.d.ts +0 -39
  20. package/lib/browser/dirty-diff/diff-computer.d.ts.map +0 -1
  21. package/lib/browser/dirty-diff/diff-computer.js +0 -167
  22. package/lib/browser/dirty-diff/diff-computer.js.map +0 -1
  23. package/lib/browser/dirty-diff/diff-computer.spec.d.ts +0 -2
  24. package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +0 -1
  25. package/lib/browser/dirty-diff/diff-computer.spec.js +0 -384
  26. package/lib/browser/dirty-diff/diff-computer.spec.js.map +0 -1
  27. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +0 -17
  28. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +0 -1
  29. package/lib/browser/dirty-diff/dirty-diff-decorator.js +0 -101
  30. package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +0 -1
  31. package/lib/browser/dirty-diff/dirty-diff-module.d.ts +0 -4
  32. package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +0 -1
  33. package/lib/browser/dirty-diff/dirty-diff-module.js +0 -34
  34. package/lib/browser/dirty-diff/dirty-diff-module.js.map +0 -1
  35. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +0 -49
  36. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +0 -1
  37. package/lib/browser/dirty-diff/dirty-diff-navigator.js +0 -295
  38. package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +0 -1
  39. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +0 -50
  40. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +0 -1
  41. package/lib/browser/dirty-diff/dirty-diff-widget.js +0 -357
  42. package/lib/browser/dirty-diff/dirty-diff-widget.js.map +0 -1
  43. package/lib/browser/merge-editor/merge-editor-contribution.d.ts +0 -34
  44. package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +0 -1
  45. package/lib/browser/merge-editor/merge-editor-contribution.js +0 -335
  46. package/lib/browser/merge-editor/merge-editor-contribution.js.map +0 -1
  47. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +0 -31
  48. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +0 -1
  49. package/lib/browser/merge-editor/merge-editor-dev-contribution.js +0 -151
  50. package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +0 -1
  51. package/lib/browser/merge-editor/merge-editor-module.d.ts +0 -24
  52. package/lib/browser/merge-editor/merge-editor-module.d.ts.map +0 -1
  53. package/lib/browser/merge-editor/merge-editor-module.js +0 -109
  54. package/lib/browser/merge-editor/merge-editor-module.js.map +0 -1
  55. package/lib/browser/merge-editor/merge-editor.d.ts +0 -122
  56. package/lib/browser/merge-editor/merge-editor.d.ts.map +0 -1
  57. package/lib/browser/merge-editor/merge-editor.js +0 -560
  58. package/lib/browser/merge-editor/merge-editor.js.map +0 -1
  59. package/lib/browser/merge-editor/model/line-range.d.ts +0 -37
  60. package/lib/browser/merge-editor/model/line-range.d.ts.map +0 -1
  61. package/lib/browser/merge-editor/model/line-range.js +0 -111
  62. package/lib/browser/merge-editor/model/line-range.js.map +0 -1
  63. package/lib/browser/merge-editor/model/live-diff.d.ts +0 -26
  64. package/lib/browser/merge-editor/model/live-diff.d.ts.map +0 -1
  65. package/lib/browser/merge-editor/model/live-diff.js +0 -85
  66. package/lib/browser/merge-editor/model/live-diff.js.map +0 -1
  67. package/lib/browser/merge-editor/model/merge-editor-model.d.ts +0 -116
  68. package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +0 -1
  69. package/lib/browser/merge-editor/model/merge-editor-model.js +0 -507
  70. package/lib/browser/merge-editor/model/merge-editor-model.js.map +0 -1
  71. package/lib/browser/merge-editor/model/merge-range.d.ts +0 -50
  72. package/lib/browser/merge-editor/model/merge-range.d.ts.map +0 -1
  73. package/lib/browser/merge-editor/model/merge-range.js +0 -215
  74. package/lib/browser/merge-editor/model/merge-range.js.map +0 -1
  75. package/lib/browser/merge-editor/model/range-editing.d.ts +0 -21
  76. package/lib/browser/merge-editor/model/range-editing.d.ts.map +0 -1
  77. package/lib/browser/merge-editor/model/range-editing.js +0 -68
  78. package/lib/browser/merge-editor/model/range-editing.js.map +0 -1
  79. package/lib/browser/merge-editor/model/range-mapping.d.ts +0 -106
  80. package/lib/browser/merge-editor/model/range-mapping.d.ts.map +0 -1
  81. package/lib/browser/merge-editor/model/range-mapping.js +0 -252
  82. package/lib/browser/merge-editor/model/range-mapping.js.map +0 -1
  83. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +0 -2
  84. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +0 -1
  85. package/lib/browser/merge-editor/model/range-mapping.spec.js +0 -48
  86. package/lib/browser/merge-editor/model/range-mapping.spec.js.map +0 -1
  87. package/lib/browser/merge-editor/model/range-utils.d.ts +0 -25
  88. package/lib/browser/merge-editor/model/range-utils.d.ts.map +0 -1
  89. package/lib/browser/merge-editor/model/range-utils.js +0 -118
  90. package/lib/browser/merge-editor/model/range-utils.js.map +0 -1
  91. package/lib/browser/merge-editor/view/diff-spacers.d.ts +0 -50
  92. package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +0 -1
  93. package/lib/browser/merge-editor/view/diff-spacers.js +0 -133
  94. package/lib/browser/merge-editor/view/diff-spacers.js.map +0 -1
  95. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +0 -6
  96. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +0 -1
  97. package/lib/browser/merge-editor/view/merge-editor-panes/index.js +0 -24
  98. package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +0 -1
  99. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +0 -12
  100. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +0 -1
  101. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +0 -65
  102. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +0 -1
  103. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +0 -30
  104. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +0 -1
  105. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +0 -102
  106. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +0 -1
  107. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +0 -49
  108. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +0 -1
  109. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +0 -214
  110. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +0 -1
  111. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +0 -16
  112. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +0 -1
  113. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +0 -107
  114. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +0 -1
  115. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +0 -27
  116. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +0 -1
  117. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +0 -135
  118. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +0 -1
  119. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +0 -20
  120. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +0 -1
  121. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +0 -218
  122. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +0 -1
  123. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +0 -57
  124. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +0 -1
  125. package/lib/browser/merge-editor/view/merge-editor-view-zones.js +0 -218
  126. package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +0 -1
  127. package/lib/browser/merge-editor/view/merge-range-actions.d.ts +0 -23
  128. package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +0 -1
  129. package/lib/browser/merge-editor/view/merge-range-actions.js +0 -142
  130. package/lib/browser/merge-editor/view/merge-range-actions.js.map +0 -1
  131. package/lib/browser/scm-amend-component.d.ts +0 -124
  132. package/lib/browser/scm-amend-component.d.ts.map +0 -1
  133. package/lib/browser/scm-amend-component.js +0 -464
  134. package/lib/browser/scm-amend-component.js.map +0 -1
  135. package/lib/browser/scm-amend-widget.d.ts +0 -21
  136. package/lib/browser/scm-amend-widget.d.ts.map +0 -1
  137. package/lib/browser/scm-amend-widget.js +0 -91
  138. package/lib/browser/scm-amend-widget.js.map +0 -1
  139. package/lib/browser/scm-avatar-service.d.ts +0 -4
  140. package/lib/browser/scm-avatar-service.d.ts.map +0 -1
  141. package/lib/browser/scm-avatar-service.js +0 -32
  142. package/lib/browser/scm-avatar-service.js.map +0 -1
  143. package/lib/browser/scm-colors.d.ts +0 -8
  144. package/lib/browser/scm-colors.d.ts.map +0 -1
  145. package/lib/browser/scm-colors.js +0 -27
  146. package/lib/browser/scm-colors.js.map +0 -1
  147. package/lib/browser/scm-commit-widget.d.ts +0 -53
  148. package/lib/browser/scm-commit-widget.d.ts.map +0 -1
  149. package/lib/browser/scm-commit-widget.js +0 -188
  150. package/lib/browser/scm-commit-widget.js.map +0 -1
  151. package/lib/browser/scm-context-key-service.d.ts +0 -13
  152. package/lib/browser/scm-context-key-service.d.ts.map +0 -1
  153. package/lib/browser/scm-context-key-service.js +0 -55
  154. package/lib/browser/scm-context-key-service.js.map +0 -1
  155. package/lib/browser/scm-contribution.d.ts +0 -98
  156. package/lib/browser/scm-contribution.d.ts.map +0 -1
  157. package/lib/browser/scm-contribution.js +0 -480
  158. package/lib/browser/scm-contribution.js.map +0 -1
  159. package/lib/browser/scm-frontend-module.d.ts +0 -7
  160. package/lib/browser/scm-frontend-module.d.ts.map +0 -1
  161. package/lib/browser/scm-frontend-module.js +0 -129
  162. package/lib/browser/scm-frontend-module.js.map +0 -1
  163. package/lib/browser/scm-groups-tree-model.d.ts +0 -15
  164. package/lib/browser/scm-groups-tree-model.d.ts.map +0 -1
  165. package/lib/browser/scm-groups-tree-model.js +0 -90
  166. package/lib/browser/scm-groups-tree-model.js.map +0 -1
  167. package/lib/browser/scm-input.d.ts +0 -54
  168. package/lib/browser/scm-input.d.ts.map +0 -1
  169. package/lib/browser/scm-input.js +0 -128
  170. package/lib/browser/scm-input.js.map +0 -1
  171. package/lib/browser/scm-layout-migrations.d.ts +0 -10
  172. package/lib/browser/scm-layout-migrations.d.ts.map +0 -1
  173. package/lib/browser/scm-layout-migrations.js +0 -75
  174. package/lib/browser/scm-layout-migrations.js.map +0 -1
  175. package/lib/browser/scm-no-repository-widget.d.ts +0 -9
  176. package/lib/browser/scm-no-repository-widget.d.ts.map +0 -1
  177. package/lib/browser/scm-no-repository-widget.js +0 -42
  178. package/lib/browser/scm-no-repository-widget.js.map +0 -1
  179. package/lib/browser/scm-provider.d.ts +0 -60
  180. package/lib/browser/scm-provider.d.ts.map +0 -1
  181. package/lib/browser/scm-provider.js +0 -20
  182. package/lib/browser/scm-provider.js.map +0 -1
  183. package/lib/browser/scm-quick-open-service.d.ts +0 -12
  184. package/lib/browser/scm-quick-open-service.d.ts.map +0 -1
  185. package/lib/browser/scm-quick-open-service.js +0 -66
  186. package/lib/browser/scm-quick-open-service.js.map +0 -1
  187. package/lib/browser/scm-repository.d.ts +0 -18
  188. package/lib/browser/scm-repository.d.ts.map +0 -1
  189. package/lib/browser/scm-repository.js +0 -42
  190. package/lib/browser/scm-repository.js.map +0 -1
  191. package/lib/browser/scm-service.d.ts +0 -27
  192. package/lib/browser/scm-service.d.ts.map +0 -1
  193. package/lib/browser/scm-service.js +0 -101
  194. package/lib/browser/scm-service.js.map +0 -1
  195. package/lib/browser/scm-tree-label-provider.d.ts +0 -8
  196. package/lib/browser/scm-tree-label-provider.d.ts.map +0 -1
  197. package/lib/browser/scm-tree-label-provider.js +0 -50
  198. package/lib/browser/scm-tree-label-provider.js.map +0 -1
  199. package/lib/browser/scm-tree-model.d.ts +0 -76
  200. package/lib/browser/scm-tree-model.d.ts.map +0 -1
  201. package/lib/browser/scm-tree-model.js +0 -349
  202. package/lib/browser/scm-tree-model.js.map +0 -1
  203. package/lib/browser/scm-tree-widget.d.ts +0 -206
  204. package/lib/browser/scm-tree-widget.d.ts.map +0 -1
  205. package/lib/browser/scm-tree-widget.js +0 -677
  206. package/lib/browser/scm-tree-widget.js.map +0 -1
  207. package/lib/browser/scm-widget.d.ts +0 -42
  208. package/lib/browser/scm-widget.d.ts.map +0 -1
  209. package/lib/browser/scm-widget.js +0 -220
  210. package/lib/browser/scm-widget.js.map +0 -1
  211. package/lib/common/scm-preferences.d.ts +0 -12
  212. package/lib/common/scm-preferences.d.ts.map +0 -1
  213. package/lib/common/scm-preferences.js +0 -51
  214. package/lib/common/scm-preferences.js.map +0 -1
  215. package/lib/node/scm-backend-module.d.ts +0 -4
  216. package/lib/node/scm-backend-module.d.ts.map +0 -1
  217. package/lib/node/scm-backend-module.js +0 -23
  218. package/lib/node/scm-backend-module.js.map +0 -1
@@ -1,507 +0,0 @@
1
- "use strict";
2
- // *****************************************************************************
3
- // Copyright (C) 2025 1C-Soft LLC and others.
4
- //
5
- // This program and the accompanying materials are made available under the
6
- // terms of the Eclipse Public License v. 2.0 which is available at
7
- // http://www.eclipse.org/legal/epl-2.0.
8
- //
9
- // This Source Code may also be made available under the following Secondary
10
- // Licenses when the conditions for such availability set forth in the Eclipse
11
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
- // with the GNU Classpath Exception which is available at
13
- // https://www.gnu.org/software/classpath/license.html.
14
- //
15
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
- // *****************************************************************************
17
- /*---------------------------------------------------------------------------------------------
18
- * Copyright (c) Microsoft Corporation. All rights reserved.
19
- * Licensed under the MIT License. See License.txt in the project root for license information.
20
- *--------------------------------------------------------------------------------------------*/
21
- // copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.ts,
22
- // https://github.com/microsoft/vscode/blob/1.96.3/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.ts
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.MergeRangeData = exports.MergeEditorModel = exports.MergeEditorModelProps = void 0;
25
- const tslib_1 = require("tslib");
26
- const inversify_1 = require("@theia/core/shared/inversify");
27
- const core_1 = require("@theia/core");
28
- const observable_1 = require("@theia/core/lib/common/observable");
29
- const diff_1 = require("@theia/core/lib/common/diff");
30
- const monaco_to_protocol_converter_1 = require("@theia/monaco/lib/browser/monaco-to-protocol-converter");
31
- const merge_range_1 = require("./merge-range");
32
- const range_mapping_1 = require("./range-mapping");
33
- const live_diff_1 = require("./live-diff");
34
- const line_range_1 = require("./line-range");
35
- const range_editing_1 = require("./range-editing");
36
- exports.MergeEditorModelProps = Symbol('MergeEditorModelProps');
37
- let MergeEditorModel = class MergeEditorModel {
38
- constructor() {
39
- this.toDispose = new core_1.DisposableCollection();
40
- this.shouldRecomputeHandledState = true;
41
- this.mergeRangesObservable = observable_1.DerivedObservable.create(() => this.computeMergeRanges());
42
- this.mergeRangesDataObservable = observable_1.DerivedObservable.create(() => new Map(this.mergeRanges.map(mergeRange => [mergeRange, this.newMergeRangeData()])));
43
- // #region Line Range Mapping
44
- this.side1ToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.computeSideToResultDiff(this.side1Changes, this.resultChanges)));
45
- this.resultToSide1LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.side1ToResultLineRangeMap.reverse());
46
- this.side2ToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.computeSideToResultDiff(this.side2Changes, this.resultChanges)));
47
- this.resultToSide2LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.side2ToResultLineRangeMap.reverse());
48
- this.baseToSide1LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.side1Changes));
49
- this.side1ToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide1LineRangeMap.reverse());
50
- this.baseToSide2LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.side2Changes));
51
- this.side2ToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide2LineRangeMap.reverse());
52
- this.baseToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.resultChanges));
53
- this.resultToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToResultLineRangeMap.reverse());
54
- // #endregion
55
- // #region Range Mapping
56
- this.baseToSide1RangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.side1Changes.flatMap(change => change.rangeMappings)));
57
- this.side1ToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide1RangeMap.reverse());
58
- this.baseToSide2RangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.side2Changes.flatMap(change => change.rangeMappings)));
59
- this.side2ToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide2RangeMap.reverse());
60
- this.baseToResultRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.resultChanges.flatMap(change => change.rangeMappings)));
61
- this.resultToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToResultRangeMap.reverse());
62
- // #endregion
63
- this.diffComputingStateObservable = observable_1.DerivedObservable.create(() => this.getDiffComputingState(this.side1LiveDiff, this.side2LiveDiff, this.resultLiveDiff));
64
- this.diffComputingStateForSidesObservable = observable_1.DerivedObservable.create(() => this.getDiffComputingState(this.side1LiveDiff, this.side2LiveDiff));
65
- this.isUpToDateObservable = observable_1.DerivedObservable.create(() => this.diffComputingStateObservable.get() === 1 /* DiffComputingState.UpToDate */);
66
- this.unhandledMergeRangesCountObservable = observable_1.DerivedObservable.create(() => {
67
- let result = 0;
68
- const mergeRangesData = this.mergeRangesDataObservable.get();
69
- for (const mergeRangeData of mergeRangesData.values()) {
70
- if (!mergeRangeData.isHandledObservable.get()) {
71
- result++;
72
- }
73
- }
74
- return result;
75
- });
76
- }
77
- get mergeRanges() {
78
- return this.mergeRangesObservable.get();
79
- }
80
- get side1ToResultLineRangeMap() {
81
- return this.side1ToResultLineRangeMapObservable.get();
82
- }
83
- get resultToSide1LineRangeMap() {
84
- return this.resultToSide1LineRangeMapObservable.get();
85
- }
86
- get side2ToResultLineRangeMap() {
87
- return this.side2ToResultLineRangeMapObservable.get();
88
- }
89
- get resultToSide2LineRangeMap() {
90
- return this.resultToSide2LineRangeMapObservable.get();
91
- }
92
- get baseToSide1LineRangeMap() {
93
- return this.baseToSide1LineRangeMapObservable.get();
94
- }
95
- get side1ToBaseLineRangeMap() {
96
- return this.side1ToBaseLineRangeMapObservable.get();
97
- }
98
- get baseToSide2LineRangeMap() {
99
- return this.baseToSide2LineRangeMapObservable.get();
100
- }
101
- get side2ToBaseLineRangeMap() {
102
- return this.side2ToBaseLineRangeMapObservable.get();
103
- }
104
- get baseToResultLineRangeMap() {
105
- return this.baseToResultLineRangeMapObservable.get();
106
- }
107
- get resultToBaseLineRangeMap() {
108
- return this.resultToBaseLineRangeMapObservable.get();
109
- }
110
- get baseToSide1RangeMap() {
111
- return this.baseToSide1RangeMapObservable.get();
112
- }
113
- get side1ToBaseRangeMap() {
114
- return this.side1ToBaseRangeMapObservable.get();
115
- }
116
- get baseToSide2RangeMap() {
117
- return this.baseToSide2RangeMapObservable.get();
118
- }
119
- get side2ToBaseRangeMap() {
120
- return this.side2ToBaseRangeMapObservable.get();
121
- }
122
- get baseToResultRangeMap() {
123
- return this.baseToResultRangeMapObservable.get();
124
- }
125
- get resultToBaseRangeMap() {
126
- return this.resultToBaseRangeMapObservable.get();
127
- }
128
- get unhandledMergeRangesCount() {
129
- return this.unhandledMergeRangesCountObservable.get();
130
- }
131
- get onInitialized() {
132
- return this._onInitialized;
133
- }
134
- get baseDocument() {
135
- return this.props.baseEditor.document;
136
- }
137
- get side1Document() {
138
- return this.props.side1Editor.document;
139
- }
140
- get side2Document() {
141
- return this.props.side2Editor.document;
142
- }
143
- get resultDocument() {
144
- return this.props.resultEditor.document;
145
- }
146
- get resultEditor() {
147
- return this.props.resultEditor;
148
- }
149
- get side1Changes() {
150
- return this.side1LiveDiff.changes;
151
- }
152
- get side2Changes() {
153
- return this.side2LiveDiff.changes;
154
- }
155
- get resultChanges() {
156
- return this.resultLiveDiff.changes;
157
- }
158
- init() {
159
- this.toDispose.push(this.side1LiveDiff = this.newLiveDiff(this.baseDocument, this.side1Document));
160
- this.toDispose.push(this.side2LiveDiff = this.newLiveDiff(this.baseDocument, this.side2Document));
161
- this.toDispose.push(this.resultLiveDiff = this.newLiveDiff(this.baseDocument, this.resultDocument));
162
- this.toDispose.push(observable_1.Observable.keepObserved(this.mergeRangesDataObservable));
163
- this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToResultLineRangeMapObservable));
164
- this.toDispose.push(observable_1.Observable.keepObserved(this.resultToSide1LineRangeMapObservable));
165
- this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToResultLineRangeMapObservable));
166
- this.toDispose.push(observable_1.Observable.keepObserved(this.resultToSide2LineRangeMapObservable));
167
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide1LineRangeMapObservable));
168
- this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToBaseLineRangeMapObservable));
169
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide2LineRangeMapObservable));
170
- this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToBaseLineRangeMapObservable));
171
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToResultLineRangeMapObservable));
172
- this.toDispose.push(observable_1.Observable.keepObserved(this.resultToBaseLineRangeMapObservable));
173
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide1RangeMapObservable));
174
- this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToBaseRangeMapObservable));
175
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide2RangeMapObservable));
176
- this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToBaseRangeMapObservable));
177
- this.toDispose.push(observable_1.Observable.keepObserved(this.baseToResultRangeMapObservable));
178
- this.toDispose.push(observable_1.Observable.keepObserved(this.resultToBaseRangeMapObservable));
179
- const initializePromise = this.doInit();
180
- this._onInitialized = observable_1.ObservableUtils.waitForState(this.isUpToDateObservable).then(() => initializePromise);
181
- initializePromise.then(() => {
182
- this.toDispose.push(observable_1.Autorun.create(() => {
183
- if (!this.isUpToDateObservable.get()) {
184
- return;
185
- }
186
- observable_1.Observable.update(() => {
187
- const mergeRangesData = this.mergeRangesDataObservable.get();
188
- for (const [mergeRange, mergeRangeData] of mergeRangesData) {
189
- const state = this.computeMergeRangeStateFromResult(mergeRange);
190
- mergeRangeData.resultStateObservable.set(state);
191
- if (this.shouldRecomputeHandledState) {
192
- mergeRangeData.isHandledObservable.set(state !== 'Base');
193
- }
194
- }
195
- this.shouldRecomputeHandledState = false;
196
- });
197
- }, {
198
- willHandleChange: ctx => {
199
- if (ctx.isChangeOf(this.mergeRangesDataObservable)) {
200
- this.shouldRecomputeHandledState = true;
201
- }
202
- return true;
203
- }
204
- }));
205
- const attachedHistory = new AttachedHistory(this.resultDocument);
206
- this.toDispose.push(attachedHistory);
207
- this.toDispose.push(this.resultDocument.textEditorModel.onDidChangeContent(event => {
208
- if (event.isRedoing || event.isUndoing) {
209
- return;
210
- }
211
- // Mark merge ranges affected by content changes as handled.
212
- const mergeRanges = [];
213
- for (const change of event.changes) {
214
- const { start, end } = this.translateResultRangeToBase(this.m2p.asRange(change.range));
215
- const affectedMergeRanges = this.findMergeRanges(new line_range_1.LineRange(start.line, end.line - start.line));
216
- for (const mergeRange of affectedMergeRanges) {
217
- if (!this.isMergeRangeHandled(mergeRange)) {
218
- mergeRanges.push(mergeRange);
219
- }
220
- }
221
- }
222
- if (mergeRanges.length === 0) {
223
- return;
224
- }
225
- const markMergeRangesAsHandled = (handled) => {
226
- observable_1.Observable.update(() => {
227
- const mergeRangesData = this.mergeRangesDataObservable.get();
228
- for (const mergeRange of mergeRanges) {
229
- const mergeRangeData = mergeRangesData.get(mergeRange);
230
- if (mergeRangeData) {
231
- mergeRangeData.isHandledObservable.set(handled);
232
- }
233
- }
234
- });
235
- };
236
- const element = {
237
- redo: () => {
238
- markMergeRangesAsHandled(true);
239
- },
240
- undo: () => {
241
- markMergeRangesAsHandled(false);
242
- }
243
- };
244
- attachedHistory.pushAttachedHistoryElement(element);
245
- element.redo();
246
- }));
247
- });
248
- }
249
- computeMergeRangeStateFromResult(mergeRange) {
250
- const resultRange = this.getLineRangeInResult(mergeRange);
251
- const existingLines = resultRange.getLines(this.resultDocument);
252
- const states = [
253
- 'Base',
254
- 'Side1',
255
- 'Side2',
256
- 'Side1Side2Smart',
257
- 'Side2Side1Smart',
258
- 'Side1Side2',
259
- 'Side2Side1'
260
- ];
261
- for (const state of states) {
262
- const edit = mergeRange.getBaseRangeEdit(state);
263
- if (core_1.ArrayUtils.equals(edit.newLines, existingLines)) {
264
- return state;
265
- }
266
- }
267
- return 'Unrecognized';
268
- }
269
- async doInit() {
270
- var _a;
271
- if ((_a = this.props.options) === null || _a === void 0 ? void 0 : _a.resetResult) {
272
- await this.reset();
273
- }
274
- }
275
- dispose() {
276
- this.toDispose.dispose();
277
- }
278
- isDisposed() {
279
- return this.toDispose.disposed;
280
- }
281
- async reset() {
282
- await observable_1.ObservableUtils.waitForState(this.diffComputingStateForSidesObservable, state => state === 1 /* DiffComputingState.UpToDate */);
283
- this.shouldRecomputeHandledState = true;
284
- this.resultDocument.textEditorModel.setValue(this.computeAutoMergedResult());
285
- }
286
- computeAutoMergedResult() {
287
- const baseLines = this.baseDocument.textEditorModel.getLinesContent();
288
- const side1Lines = this.side1Document.textEditorModel.getLinesContent();
289
- const side2Lines = this.side2Document.textEditorModel.getLinesContent();
290
- const resultLines = [];
291
- function appendLinesToResult(documentLines, lineRange) {
292
- for (let i = lineRange.startLineNumber; i < lineRange.endLineNumberExclusive; i++) {
293
- resultLines.push(documentLines[i]);
294
- }
295
- }
296
- let baseStartLineNumber = 0;
297
- for (const mergeRange of this.mergeRanges) {
298
- appendLinesToResult(baseLines, line_range_1.LineRange.fromLineNumbers(baseStartLineNumber, mergeRange.baseRange.startLineNumber));
299
- if (mergeRange.side1Changes.length === 0) {
300
- appendLinesToResult(side2Lines, mergeRange.side2Range);
301
- }
302
- else if (mergeRange.side2Changes.length === 0) {
303
- appendLinesToResult(side1Lines, mergeRange.side1Range);
304
- }
305
- else if (mergeRange.isEqualChange) {
306
- appendLinesToResult(side1Lines, mergeRange.side1Range);
307
- }
308
- else {
309
- appendLinesToResult(baseLines, mergeRange.baseRange);
310
- }
311
- baseStartLineNumber = mergeRange.baseRange.endLineNumberExclusive;
312
- }
313
- appendLinesToResult(baseLines, line_range_1.LineRange.fromLineNumbers(baseStartLineNumber, baseLines.length));
314
- return resultLines.join(this.resultDocument.textEditorModel.getEOL());
315
- }
316
- computeMergeRanges() {
317
- return merge_range_1.MergeRange.computeMergeRanges(this.side1Changes, this.side2Changes, this.baseDocument, this.side1Document, this.side2Document);
318
- }
319
- hasMergeRange(mergeRange) {
320
- return this.mergeRangesDataObservable.get().has(mergeRange);
321
- }
322
- getMergeRangeData(mergeRange) {
323
- const mergeRangeData = this.mergeRangesDataObservable.get().get(mergeRange);
324
- if (!mergeRangeData) {
325
- throw new Error('Unknown merge range');
326
- }
327
- return mergeRangeData;
328
- }
329
- getMergeRangeResultState(mergeRange) {
330
- return this.getMergeRangeData(mergeRange).resultStateObservable.get();
331
- }
332
- applyMergeRangeAcceptedState(mergeRange, state) {
333
- if (!this.isUpToDateObservable.get()) {
334
- throw new Error('Cannot apply merge range accepted state while updating');
335
- }
336
- if (state !== 'Base' && this.getMergeRangeResultState(mergeRange) === 'Unrecognized') {
337
- throw new Error('Cannot apply merge range accepted state to an unrecognized result state');
338
- }
339
- const { originalRange: baseRange, modifiedRange: resultRange } = this.getResultLineRangeMapping(mergeRange);
340
- let newLines;
341
- if (state === 'Base') {
342
- newLines = baseRange.getLines(this.baseDocument);
343
- }
344
- else {
345
- if (!baseRange.equals(mergeRange.baseRange)) {
346
- throw new Error('Assertion error');
347
- }
348
- newLines = mergeRange.getBaseRangeEdit(state).newLines;
349
- }
350
- const resultEdit = new range_editing_1.LineRangeEdit(resultRange, newLines);
351
- const editOperation = resultEdit.toRangeEdit(this.resultDocument.lineCount).toMonacoEdit();
352
- const cursorState = this.resultEditor.getControl().getSelections();
353
- this.resultDocument.textEditorModel.pushStackElement();
354
- this.resultDocument.textEditorModel.pushEditOperations(cursorState, [editOperation], () => cursorState);
355
- this.resultDocument.textEditorModel.pushStackElement();
356
- }
357
- isMergeRangeHandled(mergeRange) {
358
- return this.getMergeRangeData(mergeRange).isHandledObservable.get();
359
- }
360
- getLineRangeInResult(mergeRange) {
361
- return this.getResultLineRangeMapping(mergeRange).modifiedRange;
362
- }
363
- getResultLineRangeMapping(mergeRange) {
364
- const projectLine = (lineNumber) => {
365
- let offset = 0;
366
- const changes = this.resultChanges;
367
- for (const change of changes) {
368
- const { originalRange } = change;
369
- if (originalRange.containsLine(lineNumber) || originalRange.endLineNumberExclusive === lineNumber) {
370
- return change;
371
- }
372
- else if (originalRange.endLineNumberExclusive < lineNumber) {
373
- offset = change.modifiedRange.endLineNumberExclusive - originalRange.endLineNumberExclusive;
374
- }
375
- else {
376
- break;
377
- }
378
- }
379
- return lineNumber + offset;
380
- };
381
- let startBase = mergeRange.baseRange.startLineNumber;
382
- let startResult = projectLine(startBase);
383
- if (typeof startResult !== 'number') {
384
- startBase = startResult.originalRange.startLineNumber;
385
- startResult = startResult.modifiedRange.startLineNumber;
386
- }
387
- let endExclusiveBase = mergeRange.baseRange.endLineNumberExclusive;
388
- let endExclusiveResult = projectLine(endExclusiveBase);
389
- if (typeof endExclusiveResult !== 'number') {
390
- endExclusiveBase = endExclusiveResult.originalRange.endLineNumberExclusive;
391
- endExclusiveResult = endExclusiveResult.modifiedRange.endLineNumberExclusive;
392
- }
393
- return new range_mapping_1.LineRangeMapping(line_range_1.LineRange.fromLineNumbers(startBase, endExclusiveBase), line_range_1.LineRange.fromLineNumbers(startResult, endExclusiveResult));
394
- }
395
- translateBaseRangeToSide(range, side) {
396
- const rangeMap = side === 1 ? this.baseToSide1RangeMap : this.baseToSide2RangeMap;
397
- return rangeMap.projectRange(range).modifiedRange;
398
- }
399
- translateSideRangeToBase(range, side) {
400
- const rangeMap = side === 1 ? this.side1ToBaseRangeMap : this.side2ToBaseRangeMap;
401
- return rangeMap.projectRange(range).modifiedRange;
402
- }
403
- translateBaseRangeToResult(range) {
404
- return this.baseToResultRangeMap.projectRange(range).modifiedRange;
405
- }
406
- translateResultRangeToBase(range) {
407
- return this.resultToBaseRangeMap.projectRange(range).modifiedRange;
408
- }
409
- findMergeRanges(baseRange) {
410
- return this.mergeRanges.filter(mergeRange => mergeRange.baseRange.touches(baseRange));
411
- }
412
- computeSideToResultDiff(sideChanges, resultChanges) {
413
- return range_mapping_1.DocumentLineRangeMap.betweenModifiedSides(sideChanges, resultChanges).lineRangeMappings;
414
- }
415
- newMergeRangeData() {
416
- return new MergeRangeData();
417
- }
418
- newLiveDiff(originalDocument, modifiedDocument) {
419
- return new live_diff_1.LiveDiff(originalDocument, modifiedDocument, this.diffComputer);
420
- }
421
- newDocumentLineRangeMap(lineRangeMappings) {
422
- return new range_mapping_1.DocumentLineRangeMap(lineRangeMappings);
423
- }
424
- newDocumentRangeMap(rangeMappings) {
425
- return new range_mapping_1.DocumentRangeMap(rangeMappings);
426
- }
427
- getDiffComputingState(...liveDiffs) {
428
- const liveDiffStates = liveDiffs.map(liveDiff => liveDiff.state);
429
- if (liveDiffStates.some(state => state === 0 /* LiveDiffState.Initializing */)) {
430
- return 0 /* DiffComputingState.Initializing */;
431
- }
432
- if (liveDiffStates.some(state => state === 2 /* LiveDiffState.Updating */)) {
433
- return 2 /* DiffComputingState.Updating */;
434
- }
435
- return 1 /* DiffComputingState.UpToDate */;
436
- }
437
- };
438
- exports.MergeEditorModel = MergeEditorModel;
439
- tslib_1.__decorate([
440
- (0, inversify_1.inject)(exports.MergeEditorModelProps),
441
- tslib_1.__metadata("design:type", Object)
442
- ], MergeEditorModel.prototype, "props", void 0);
443
- tslib_1.__decorate([
444
- (0, inversify_1.inject)(diff_1.DiffComputer),
445
- tslib_1.__metadata("design:type", Object)
446
- ], MergeEditorModel.prototype, "diffComputer", void 0);
447
- tslib_1.__decorate([
448
- (0, inversify_1.inject)(monaco_to_protocol_converter_1.MonacoToProtocolConverter),
449
- tslib_1.__metadata("design:type", monaco_to_protocol_converter_1.MonacoToProtocolConverter)
450
- ], MergeEditorModel.prototype, "m2p", void 0);
451
- tslib_1.__decorate([
452
- (0, inversify_1.postConstruct)(),
453
- tslib_1.__metadata("design:type", Function),
454
- tslib_1.__metadata("design:paramtypes", []),
455
- tslib_1.__metadata("design:returntype", void 0)
456
- ], MergeEditorModel.prototype, "init", null);
457
- exports.MergeEditorModel = MergeEditorModel = tslib_1.__decorate([
458
- (0, inversify_1.injectable)()
459
- ], MergeEditorModel);
460
- class MergeRangeData {
461
- constructor() {
462
- this.resultStateObservable = observable_1.SettableObservable.create('Base');
463
- this.isHandledObservable = observable_1.SettableObservable.create(false);
464
- }
465
- }
466
- exports.MergeRangeData = MergeRangeData;
467
- class AttachedHistory {
468
- constructor(model) {
469
- this.model = model;
470
- this.toDispose = new core_1.DisposableCollection();
471
- this.attachedHistory = [];
472
- let previousAltId = this.model.textEditorModel.getAlternativeVersionId();
473
- this.toDispose.push(model.textEditorModel.onDidChangeContent(event => {
474
- const currentAltId = model.textEditorModel.getAlternativeVersionId();
475
- if (event.isRedoing) {
476
- for (const item of this.attachedHistory) {
477
- if (previousAltId < item.altId && item.altId <= currentAltId) {
478
- item.element.redo();
479
- }
480
- }
481
- }
482
- else if (event.isUndoing) {
483
- for (let i = this.attachedHistory.length - 1; i >= 0; i--) {
484
- const item = this.attachedHistory[i];
485
- if (currentAltId < item.altId && item.altId <= previousAltId) {
486
- item.element.undo();
487
- }
488
- }
489
- }
490
- else {
491
- // The user destroyed the redo stack by performing a non redo/undo operation.
492
- while (this.attachedHistory.length > 0
493
- && this.attachedHistory[this.attachedHistory.length - 1].altId > previousAltId) {
494
- this.attachedHistory.pop();
495
- }
496
- }
497
- previousAltId = currentAltId;
498
- }));
499
- }
500
- dispose() {
501
- this.toDispose.dispose();
502
- }
503
- pushAttachedHistoryElement(element) {
504
- this.attachedHistory.push({ altId: this.model.textEditorModel.getAlternativeVersionId(), element });
505
- }
506
- }
507
- //# sourceMappingURL=merge-editor-model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-editor-model.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/model/merge-editor-model.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { TextEditorDocument } from '@theia/editor/lib/browser/editor';
2
- import { DetailedLineRangeMapping } from './range-mapping';
3
- import { LineRange } from './line-range';
4
- import { LineRangeEdit, RangeEdit } from './range-editing';
5
- /**
6
- * Describes modifications in side 1 and side 2 for a specific range in base.
7
- */
8
- export declare class MergeRange {
9
- readonly baseRange: LineRange;
10
- readonly baseDocument: TextEditorDocument;
11
- readonly side1Range: LineRange;
12
- readonly side1Changes: readonly DetailedLineRangeMapping[];
13
- readonly side1Document: TextEditorDocument;
14
- readonly side2Range: LineRange;
15
- readonly side2Changes: readonly DetailedLineRangeMapping[];
16
- readonly side2Document: TextEditorDocument;
17
- static computeMergeRanges(side1Diff: readonly DetailedLineRangeMapping[], side2Diff: readonly DetailedLineRangeMapping[], baseDocument: TextEditorDocument, side1Document: TextEditorDocument, side2Document: TextEditorDocument): MergeRange[];
18
- readonly side1CombinedChange: DetailedLineRangeMapping | undefined;
19
- readonly side2CombinedChange: DetailedLineRangeMapping | undefined;
20
- readonly isEqualChange: boolean;
21
- constructor(baseRange: LineRange, baseDocument: TextEditorDocument, side1Range: LineRange, side1Changes: readonly DetailedLineRangeMapping[], side1Document: TextEditorDocument, side2Range: LineRange, side2Changes: readonly DetailedLineRangeMapping[], side2Document: TextEditorDocument);
22
- getModifiedRange(side: MergeSide): LineRange;
23
- getCombinedChange(side: MergeSide): DetailedLineRangeMapping | undefined;
24
- getChanges(side: MergeSide): readonly DetailedLineRangeMapping[];
25
- get isConflicting(): boolean;
26
- canBeSmartCombined(firstSide: MergeSide): boolean;
27
- get isSmartCombinationOrderRelevant(): boolean;
28
- getBaseRangeEdit(state: MergeRangeAcceptedState): LineRangeEdit;
29
- protected smartCombinationEdit1?: {
30
- value: LineRangeEdit | undefined;
31
- };
32
- protected smartCombinationEdit2?: {
33
- value: LineRangeEdit | undefined;
34
- };
35
- protected smartCombineChanges(firstSide: MergeSide): LineRangeEdit | undefined;
36
- protected editsToLineRangeEdit(range: LineRange, sortedEdits: RangeEdit[], document: TextEditorDocument): LineRangeEdit | undefined;
37
- protected dumbCombinationEdit1?: LineRangeEdit;
38
- protected dumbCombinationEdit2?: LineRangeEdit;
39
- protected dumbCombineChanges(firstSide: MergeSide): LineRangeEdit;
40
- }
41
- export type MergeSide = 1 | 2;
42
- export type MergeRangeAcceptedState = 'Base' | 'Side1' | 'Side2' | 'Side1Side2' | 'Side2Side1' | 'Side1Side2Smart' | 'Side2Side1Smart';
43
- export declare namespace MergeRangeAcceptedState {
44
- function addSide(state: MergeRangeAcceptedState, side: MergeSide, options?: {
45
- smartCombination?: boolean;
46
- }): MergeRangeAcceptedState;
47
- function removeSide(state: MergeRangeAcceptedState, side: MergeSide): MergeRangeAcceptedState;
48
- }
49
- export type MergeRangeResultState = MergeRangeAcceptedState | 'Unrecognized';
50
- //# sourceMappingURL=merge-range.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-range.d.ts","sourceRoot":"","sources":["../../../../src/browser/merge-editor/model/merge-range.ts"],"names":[],"mappings":"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"}