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

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 (217) hide show
  1. package/lib/browser/decorations/scm-decorations-service.d.ts +21 -0
  2. package/lib/browser/decorations/scm-decorations-service.d.ts.map +1 -0
  3. package/lib/browser/decorations/scm-decorations-service.js +134 -0
  4. package/lib/browser/decorations/scm-decorations-service.js.map +1 -0
  5. package/lib/browser/decorations/scm-navigator-decorator.d.ts +26 -0
  6. package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +1 -0
  7. package/lib/browser/decorations/scm-navigator-decorator.js +122 -0
  8. package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -0
  9. package/lib/browser/dirty-diff/content-lines.d.ts +15 -0
  10. package/lib/browser/dirty-diff/content-lines.d.ts.map +1 -0
  11. package/lib/browser/dirty-diff/content-lines.js +114 -0
  12. package/lib/browser/dirty-diff/content-lines.js.map +1 -0
  13. package/lib/browser/dirty-diff/content-lines.spec.d.ts +2 -0
  14. package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +1 -0
  15. package/lib/browser/dirty-diff/content-lines.spec.js +40 -0
  16. package/lib/browser/dirty-diff/content-lines.spec.js.map +1 -0
  17. package/lib/browser/dirty-diff/diff-computer.d.ts +39 -0
  18. package/lib/browser/dirty-diff/diff-computer.d.ts.map +1 -0
  19. package/lib/browser/dirty-diff/diff-computer.js +167 -0
  20. package/lib/browser/dirty-diff/diff-computer.js.map +1 -0
  21. package/lib/browser/dirty-diff/diff-computer.spec.d.ts +2 -0
  22. package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +1 -0
  23. package/lib/browser/dirty-diff/diff-computer.spec.js +384 -0
  24. package/lib/browser/dirty-diff/diff-computer.spec.js.map +1 -0
  25. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +17 -0
  26. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +1 -0
  27. package/lib/browser/dirty-diff/dirty-diff-decorator.js +101 -0
  28. package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +1 -0
  29. package/lib/browser/dirty-diff/dirty-diff-module.d.ts +4 -0
  30. package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +1 -0
  31. package/lib/browser/dirty-diff/dirty-diff-module.js +34 -0
  32. package/lib/browser/dirty-diff/dirty-diff-module.js.map +1 -0
  33. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +49 -0
  34. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +1 -0
  35. package/lib/browser/dirty-diff/dirty-diff-navigator.js +295 -0
  36. package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +1 -0
  37. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +50 -0
  38. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +1 -0
  39. package/lib/browser/dirty-diff/dirty-diff-widget.js +357 -0
  40. package/lib/browser/dirty-diff/dirty-diff-widget.js.map +1 -0
  41. package/lib/browser/merge-editor/merge-editor-contribution.d.ts +34 -0
  42. package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +1 -0
  43. package/lib/browser/merge-editor/merge-editor-contribution.js +335 -0
  44. package/lib/browser/merge-editor/merge-editor-contribution.js.map +1 -0
  45. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +31 -0
  46. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +1 -0
  47. package/lib/browser/merge-editor/merge-editor-dev-contribution.js +151 -0
  48. package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +1 -0
  49. package/lib/browser/merge-editor/merge-editor-module.d.ts +24 -0
  50. package/lib/browser/merge-editor/merge-editor-module.d.ts.map +1 -0
  51. package/lib/browser/merge-editor/merge-editor-module.js +109 -0
  52. package/lib/browser/merge-editor/merge-editor-module.js.map +1 -0
  53. package/lib/browser/merge-editor/merge-editor.d.ts +122 -0
  54. package/lib/browser/merge-editor/merge-editor.d.ts.map +1 -0
  55. package/lib/browser/merge-editor/merge-editor.js +560 -0
  56. package/lib/browser/merge-editor/merge-editor.js.map +1 -0
  57. package/lib/browser/merge-editor/model/line-range.d.ts +37 -0
  58. package/lib/browser/merge-editor/model/line-range.d.ts.map +1 -0
  59. package/lib/browser/merge-editor/model/line-range.js +111 -0
  60. package/lib/browser/merge-editor/model/line-range.js.map +1 -0
  61. package/lib/browser/merge-editor/model/live-diff.d.ts +26 -0
  62. package/lib/browser/merge-editor/model/live-diff.d.ts.map +1 -0
  63. package/lib/browser/merge-editor/model/live-diff.js +85 -0
  64. package/lib/browser/merge-editor/model/live-diff.js.map +1 -0
  65. package/lib/browser/merge-editor/model/merge-editor-model.d.ts +116 -0
  66. package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +1 -0
  67. package/lib/browser/merge-editor/model/merge-editor-model.js +507 -0
  68. package/lib/browser/merge-editor/model/merge-editor-model.js.map +1 -0
  69. package/lib/browser/merge-editor/model/merge-range.d.ts +50 -0
  70. package/lib/browser/merge-editor/model/merge-range.d.ts.map +1 -0
  71. package/lib/browser/merge-editor/model/merge-range.js +215 -0
  72. package/lib/browser/merge-editor/model/merge-range.js.map +1 -0
  73. package/lib/browser/merge-editor/model/range-editing.d.ts +21 -0
  74. package/lib/browser/merge-editor/model/range-editing.d.ts.map +1 -0
  75. package/lib/browser/merge-editor/model/range-editing.js +68 -0
  76. package/lib/browser/merge-editor/model/range-editing.js.map +1 -0
  77. package/lib/browser/merge-editor/model/range-mapping.d.ts +106 -0
  78. package/lib/browser/merge-editor/model/range-mapping.d.ts.map +1 -0
  79. package/lib/browser/merge-editor/model/range-mapping.js +252 -0
  80. package/lib/browser/merge-editor/model/range-mapping.js.map +1 -0
  81. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +2 -0
  82. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +1 -0
  83. package/lib/browser/merge-editor/model/range-mapping.spec.js +48 -0
  84. package/lib/browser/merge-editor/model/range-mapping.spec.js.map +1 -0
  85. package/lib/browser/merge-editor/model/range-utils.d.ts +25 -0
  86. package/lib/browser/merge-editor/model/range-utils.d.ts.map +1 -0
  87. package/lib/browser/merge-editor/model/range-utils.js +118 -0
  88. package/lib/browser/merge-editor/model/range-utils.js.map +1 -0
  89. package/lib/browser/merge-editor/view/diff-spacers.d.ts +50 -0
  90. package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +1 -0
  91. package/lib/browser/merge-editor/view/diff-spacers.js +133 -0
  92. package/lib/browser/merge-editor/view/diff-spacers.js.map +1 -0
  93. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +6 -0
  94. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +1 -0
  95. package/lib/browser/merge-editor/view/merge-editor-panes/index.js +24 -0
  96. package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +1 -0
  97. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +12 -0
  98. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +1 -0
  99. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +65 -0
  100. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +1 -0
  101. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +30 -0
  102. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +1 -0
  103. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +102 -0
  104. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -0
  105. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +49 -0
  106. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +1 -0
  107. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +214 -0
  108. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +1 -0
  109. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +16 -0
  110. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +1 -0
  111. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +107 -0
  112. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +1 -0
  113. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +27 -0
  114. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +1 -0
  115. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +135 -0
  116. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +1 -0
  117. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +20 -0
  118. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +1 -0
  119. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +218 -0
  120. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +1 -0
  121. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +57 -0
  122. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +1 -0
  123. package/lib/browser/merge-editor/view/merge-editor-view-zones.js +218 -0
  124. package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +1 -0
  125. package/lib/browser/merge-editor/view/merge-range-actions.d.ts +23 -0
  126. package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +1 -0
  127. package/lib/browser/merge-editor/view/merge-range-actions.js +142 -0
  128. package/lib/browser/merge-editor/view/merge-range-actions.js.map +1 -0
  129. package/lib/browser/scm-amend-component.d.ts +124 -0
  130. package/lib/browser/scm-amend-component.d.ts.map +1 -0
  131. package/lib/browser/scm-amend-component.js +464 -0
  132. package/lib/browser/scm-amend-component.js.map +1 -0
  133. package/lib/browser/scm-amend-widget.d.ts +21 -0
  134. package/lib/browser/scm-amend-widget.d.ts.map +1 -0
  135. package/lib/browser/scm-amend-widget.js +91 -0
  136. package/lib/browser/scm-amend-widget.js.map +1 -0
  137. package/lib/browser/scm-avatar-service.d.ts +4 -0
  138. package/lib/browser/scm-avatar-service.d.ts.map +1 -0
  139. package/lib/browser/scm-avatar-service.js +32 -0
  140. package/lib/browser/scm-avatar-service.js.map +1 -0
  141. package/lib/browser/scm-colors.d.ts +8 -0
  142. package/lib/browser/scm-colors.d.ts.map +1 -0
  143. package/lib/browser/scm-colors.js +27 -0
  144. package/lib/browser/scm-colors.js.map +1 -0
  145. package/lib/browser/scm-commit-widget.d.ts +53 -0
  146. package/lib/browser/scm-commit-widget.d.ts.map +1 -0
  147. package/lib/browser/scm-commit-widget.js +188 -0
  148. package/lib/browser/scm-commit-widget.js.map +1 -0
  149. package/lib/browser/scm-context-key-service.d.ts +13 -0
  150. package/lib/browser/scm-context-key-service.d.ts.map +1 -0
  151. package/lib/browser/scm-context-key-service.js +55 -0
  152. package/lib/browser/scm-context-key-service.js.map +1 -0
  153. package/lib/browser/scm-contribution.d.ts +98 -0
  154. package/lib/browser/scm-contribution.d.ts.map +1 -0
  155. package/lib/browser/scm-contribution.js +480 -0
  156. package/lib/browser/scm-contribution.js.map +1 -0
  157. package/lib/browser/scm-frontend-module.d.ts +7 -0
  158. package/lib/browser/scm-frontend-module.d.ts.map +1 -0
  159. package/lib/browser/scm-frontend-module.js +129 -0
  160. package/lib/browser/scm-frontend-module.js.map +1 -0
  161. package/lib/browser/scm-groups-tree-model.d.ts +15 -0
  162. package/lib/browser/scm-groups-tree-model.d.ts.map +1 -0
  163. package/lib/browser/scm-groups-tree-model.js +90 -0
  164. package/lib/browser/scm-groups-tree-model.js.map +1 -0
  165. package/lib/browser/scm-input.d.ts +54 -0
  166. package/lib/browser/scm-input.d.ts.map +1 -0
  167. package/lib/browser/scm-input.js +128 -0
  168. package/lib/browser/scm-input.js.map +1 -0
  169. package/lib/browser/scm-layout-migrations.d.ts +10 -0
  170. package/lib/browser/scm-layout-migrations.d.ts.map +1 -0
  171. package/lib/browser/scm-layout-migrations.js +75 -0
  172. package/lib/browser/scm-layout-migrations.js.map +1 -0
  173. package/lib/browser/scm-no-repository-widget.d.ts +9 -0
  174. package/lib/browser/scm-no-repository-widget.d.ts.map +1 -0
  175. package/lib/browser/scm-no-repository-widget.js +42 -0
  176. package/lib/browser/scm-no-repository-widget.js.map +1 -0
  177. package/lib/browser/scm-provider.d.ts +60 -0
  178. package/lib/browser/scm-provider.d.ts.map +1 -0
  179. package/lib/browser/scm-provider.js +20 -0
  180. package/lib/browser/scm-provider.js.map +1 -0
  181. package/lib/browser/scm-quick-open-service.d.ts +12 -0
  182. package/lib/browser/scm-quick-open-service.d.ts.map +1 -0
  183. package/lib/browser/scm-quick-open-service.js +66 -0
  184. package/lib/browser/scm-quick-open-service.js.map +1 -0
  185. package/lib/browser/scm-repository.d.ts +18 -0
  186. package/lib/browser/scm-repository.d.ts.map +1 -0
  187. package/lib/browser/scm-repository.js +42 -0
  188. package/lib/browser/scm-repository.js.map +1 -0
  189. package/lib/browser/scm-service.d.ts +27 -0
  190. package/lib/browser/scm-service.d.ts.map +1 -0
  191. package/lib/browser/scm-service.js +101 -0
  192. package/lib/browser/scm-service.js.map +1 -0
  193. package/lib/browser/scm-tree-label-provider.d.ts +8 -0
  194. package/lib/browser/scm-tree-label-provider.d.ts.map +1 -0
  195. package/lib/browser/scm-tree-label-provider.js +50 -0
  196. package/lib/browser/scm-tree-label-provider.js.map +1 -0
  197. package/lib/browser/scm-tree-model.d.ts +76 -0
  198. package/lib/browser/scm-tree-model.d.ts.map +1 -0
  199. package/lib/browser/scm-tree-model.js +349 -0
  200. package/lib/browser/scm-tree-model.js.map +1 -0
  201. package/lib/browser/scm-tree-widget.d.ts +206 -0
  202. package/lib/browser/scm-tree-widget.d.ts.map +1 -0
  203. package/lib/browser/scm-tree-widget.js +677 -0
  204. package/lib/browser/scm-tree-widget.js.map +1 -0
  205. package/lib/browser/scm-widget.d.ts +42 -0
  206. package/lib/browser/scm-widget.d.ts.map +1 -0
  207. package/lib/browser/scm-widget.js +220 -0
  208. package/lib/browser/scm-widget.js.map +1 -0
  209. package/lib/common/scm-preferences.d.ts +12 -0
  210. package/lib/common/scm-preferences.d.ts.map +1 -0
  211. package/lib/common/scm-preferences.js +51 -0
  212. package/lib/common/scm-preferences.js.map +1 -0
  213. package/lib/node/scm-backend-module.d.ts +4 -0
  214. package/lib/node/scm-backend-module.d.ts.map +1 -0
  215. package/lib/node/scm-backend-module.js +23 -0
  216. package/lib/node/scm-backend-module.js.map +1 -0
  217. package/package.json +6 -6
@@ -0,0 +1,133 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.DiffSpacerService = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const core_1 = require("@theia/core");
22
+ let DiffSpacerService = class DiffSpacerService {
23
+ computeDiffSpacers(changes, originalLineCount) {
24
+ const lineMapping = [];
25
+ const originalSpacers = [];
26
+ const modifiedSpacers = [];
27
+ let originalLine = 0;
28
+ let deltaSum = 0;
29
+ for (const { originalRange, modifiedRange } of changes) {
30
+ while (originalLine < originalRange.startLineNumber + Math.min(originalRange.lineCount, modifiedRange.lineCount)) {
31
+ lineMapping[originalLine] = originalLine + deltaSum;
32
+ originalLine++;
33
+ }
34
+ const delta = modifiedRange.lineCount - originalRange.lineCount;
35
+ deltaSum += delta;
36
+ if (delta > 0) {
37
+ originalSpacers[originalLine] = delta;
38
+ }
39
+ if (delta < 0) {
40
+ modifiedSpacers[modifiedRange.endLineNumberExclusive] = -delta;
41
+ originalLine += -delta;
42
+ }
43
+ }
44
+ while (originalLine <= originalLineCount) {
45
+ lineMapping[originalLine] = originalLine + deltaSum;
46
+ originalLine++;
47
+ }
48
+ return { originalSpacers, modifiedSpacers, lineMapping };
49
+ }
50
+ /**
51
+ * Combines multiple {@link DiffSpacers} objects into a {@link CombinedMultiDiffSpacers} object with the appropriately adjusted spacers.
52
+ * The given {@link DiffSpacers} objects are not modified.
53
+ *
54
+ * It is assumed that all of the given {@link DiffSpacers} objects have been computed from diffs against the same original side.
55
+ */
56
+ combineMultiDiffSpacers(multiDiffSpacers) {
57
+ var _a, _b;
58
+ if (multiDiffSpacers.length < 2) {
59
+ throw new Error('At least two items are required');
60
+ }
61
+ this.checkLineMappingsHaveEqualLength(multiDiffSpacers);
62
+ const originalSpacers = [];
63
+ const modifiedSides = [];
64
+ for (const { modifiedSpacers, lineMapping } of multiDiffSpacers) {
65
+ const modifiedSpacersCopy = modifiedSpacers.concat(); // note: copying by concat() preserves empty slots of the sparse array
66
+ modifiedSides.push({ modifiedSpacers: modifiedSpacersCopy, lineMapping });
67
+ }
68
+ const originalLineCount = modifiedSides[0].lineMapping.length;
69
+ for (let originalLine = 0; originalLine < originalLineCount; originalLine++) {
70
+ const max = Math.max(...multiDiffSpacers.map(diffSpacers => { var _a; return (_a = diffSpacers.originalSpacers[originalLine]) !== null && _a !== void 0 ? _a : 0; }));
71
+ if (max > 0) {
72
+ originalSpacers[originalLine] = max;
73
+ for (let i = 0; i < multiDiffSpacers.length; i++) {
74
+ const delta = max - ((_a = multiDiffSpacers[i].originalSpacers[originalLine]) !== null && _a !== void 0 ? _a : 0);
75
+ if (delta > 0) {
76
+ const { modifiedSpacers, lineMapping } = modifiedSides[i];
77
+ const modifiedLine = this.projectLine(originalLine, lineMapping);
78
+ modifiedSpacers[modifiedLine] = ((_b = modifiedSpacers[modifiedLine]) !== null && _b !== void 0 ? _b : 0) + delta;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return { originalSpacers, modifiedSides };
84
+ }
85
+ /**
86
+ * Given a {@link CombinedMultiDiffSpacers} object, excludes the original side, returning the modified sides with the appropriately adjusted spacers.
87
+ * The given {@link CombinedMultiDiffSpacers} object is not modified.
88
+ */
89
+ excludeOriginalSide({ modifiedSides }) {
90
+ if (modifiedSides.length < 2) {
91
+ throw new Error('At least two modified sides are required');
92
+ }
93
+ this.checkLineMappingsHaveEqualLength(modifiedSides);
94
+ const modifiedSidesCopy = [];
95
+ for (const { modifiedSpacers } of modifiedSides) {
96
+ const modifiedSpacersCopy = modifiedSpacers.concat(); // note: copying by concat() preserves empty slots of the sparse array
97
+ modifiedSidesCopy.push({ modifiedSpacers: modifiedSpacersCopy });
98
+ }
99
+ // When the original side is excluded, the adjoining spacers in the modified sides can be deflated by removing their intersecting parts.
100
+ const originalLineCount = modifiedSides[0].lineMapping.length;
101
+ for (let originalLine = 0; originalLine < originalLineCount; originalLine++) {
102
+ if (modifiedSides.every(({ lineMapping }) => lineMapping[originalLine] === undefined)) {
103
+ modifiedSides.forEach(({ lineMapping }, index) => {
104
+ const modifiedLine = this.projectLine(originalLine, lineMapping);
105
+ const { modifiedSpacers } = modifiedSidesCopy[index];
106
+ modifiedSpacers[modifiedLine]--;
107
+ });
108
+ }
109
+ }
110
+ return { modifiedSides: modifiedSidesCopy };
111
+ }
112
+ checkLineMappingsHaveEqualLength(items) {
113
+ if (!core_1.ArrayUtils.checkAdjacentItems(items, (item1, item2) => item1.lineMapping.length === item2.lineMapping.length)) {
114
+ throw new Error('Line mappings must have equal length');
115
+ }
116
+ }
117
+ projectLine(originalLine, lineMapping) {
118
+ let modifiedLine;
119
+ const originalLineCount = lineMapping.length;
120
+ while (originalLine < originalLineCount) {
121
+ modifiedLine = lineMapping[originalLine++];
122
+ if (modifiedLine !== undefined) {
123
+ return modifiedLine;
124
+ }
125
+ }
126
+ throw new Error('Assertion failed');
127
+ }
128
+ };
129
+ exports.DiffSpacerService = DiffSpacerService;
130
+ exports.DiffSpacerService = DiffSpacerService = tslib_1.__decorate([
131
+ (0, inversify_1.injectable)()
132
+ ], DiffSpacerService);
133
+ //# sourceMappingURL=diff-spacers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-spacers.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/diff-spacers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './merge-editor-pane';
2
+ export * from './merge-editor-pane-header';
3
+ export * from './merge-editor-base-pane';
4
+ export * from './merge-editor-side-pane';
5
+ export * from './merge-editor-result-pane';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/index.ts"],"names":[],"mappings":"AAgBA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,24 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ tslib_1.__exportStar(require("./merge-editor-pane"), exports);
20
+ tslib_1.__exportStar(require("./merge-editor-pane-header"), exports);
21
+ tslib_1.__exportStar(require("./merge-editor-base-pane"), exports);
22
+ tslib_1.__exportStar(require("./merge-editor-side-pane"), exports);
23
+ tslib_1.__exportStar(require("./merge-editor-result-pane"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8DAAoC;AACpC,qEAA2C;AAC3C,mEAAyC;AACzC,mEAAyC;AACzC,qEAA2C"}
@@ -0,0 +1,12 @@
1
+ import { EditorDecoration, Range } from '@theia/editor/lib/browser';
2
+ import { MergeEditorPane } from './merge-editor-pane';
3
+ import { MergeRange } from '../../model/merge-range';
4
+ import { LineRange } from '../../model/line-range';
5
+ export declare class MergeEditorBasePane extends MergeEditorPane {
6
+ constructor();
7
+ getLineRangeForMergeRange(mergeRange: MergeRange): LineRange;
8
+ protected translateBaseRange(range: Range): Range;
9
+ protected onAfterMergeEditorSet(): void;
10
+ protected computeEditorDecorations(): EditorDecoration[];
11
+ }
12
+ //# sourceMappingURL=merge-editor-base-pane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-base-pane.d.ts","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBACa,mBAAoB,SAAQ,eAAe;;IAO3C,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS;cAIlD,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;cAIvC,qBAAqB,IAAI,IAAI;cAU7B,wBAAwB,IAAI,gBAAgB,EAAE;CAoBpE"}
@@ -0,0 +1,65 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MergeEditorBasePane = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const core_1 = require("@theia/core");
22
+ const observable_1 = require("@theia/core/lib/common/observable");
23
+ const merge_editor_pane_1 = require("./merge-editor-pane");
24
+ let MergeEditorBasePane = class MergeEditorBasePane extends merge_editor_pane_1.MergeEditorPane {
25
+ constructor() {
26
+ super();
27
+ this.addClass('base');
28
+ }
29
+ getLineRangeForMergeRange(mergeRange) {
30
+ return mergeRange.baseRange;
31
+ }
32
+ translateBaseRange(range) {
33
+ return range;
34
+ }
35
+ onAfterMergeEditorSet() {
36
+ super.onAfterMergeEditorSet();
37
+ this.toDispose.push(observable_1.Autorun.create(() => {
38
+ const { currentPane, side1Pane, side1Title, side2Pane, side2Title } = this.mergeEditor;
39
+ this.header.description = currentPane === this ? '' : core_1.nls.localizeByDefault('Comparing with {0}', currentPane === side1Pane ? side1Title : currentPane === side2Pane ? side2Title : core_1.nls.localizeByDefault('Result'));
40
+ }));
41
+ }
42
+ computeEditorDecorations() {
43
+ const result = [];
44
+ const { model, currentPane, side1Pane, side2Pane, currentMergeRange } = this.mergeEditor;
45
+ for (const mergeRange of model.mergeRanges) {
46
+ const lineRange = mergeRange.baseRange;
47
+ result.push(this.toMergeRangeDecoration(lineRange, {
48
+ isHandled: model.isMergeRangeHandled(mergeRange),
49
+ isFocused: mergeRange === currentMergeRange,
50
+ isAfterEnd: lineRange.startLineNumber > model.baseDocument.lineCount,
51
+ }));
52
+ }
53
+ if (currentPane !== this) {
54
+ const changes = currentPane === side1Pane ? model.side1Changes : currentPane === side2Pane ? model.side2Changes : model.resultChanges;
55
+ result.push(...this.toChangeDecorations(changes, { diffSide: 'original' }));
56
+ }
57
+ return result;
58
+ }
59
+ };
60
+ exports.MergeEditorBasePane = MergeEditorBasePane;
61
+ exports.MergeEditorBasePane = MergeEditorBasePane = tslib_1.__decorate([
62
+ (0, inversify_1.injectable)(),
63
+ tslib_1.__metadata("design:paramtypes", [])
64
+ ], MergeEditorBasePane);
65
+ //# sourceMappingURL=merge-editor-base-pane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-base-pane.js","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAA0D;AAC1D,sCAAkC;AAClC,kEAA4D;AAE5D,2DAAsD;AAK/C,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,mCAAe;IAEpD;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAEQ,yBAAyB,CAAC,UAAsB;QACrD,OAAO,UAAU,CAAC,SAAS,CAAC;IAChC,CAAC;IAEkB,kBAAkB,CAAC,KAAY;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAEkB,qBAAqB;QACpC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YACvF,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAG,CAAC,iBAAiB,CAAC,oBAAoB,EAC5F,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CACpH,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEkB,wBAAwB;QACvC,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAEzF,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;gBAC/C,SAAS,EAAE,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBAChD,SAAS,EAAE,UAAU,KAAK,iBAAiB;gBAC3C,UAAU,EAAE,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS;aACvE,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YACtI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAA;AA7CY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;;GACA,mBAAmB,CA6C/B"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="react" />
2
+ import * as React from '@theia/core/shared/react';
3
+ import { Message, ReactWidget } from '@theia/core/lib/browser';
4
+ import { LabelParser } from '@theia/core/lib/browser/label-parser';
5
+ export declare class MergeEditorPaneHeader extends ReactWidget {
6
+ protected readonly labelParser: LabelParser;
7
+ private _description;
8
+ get description(): string;
9
+ set description(description: string);
10
+ private _detail;
11
+ get detail(): string;
12
+ set detail(detail: string);
13
+ private _toolbarItems;
14
+ get toolbarItems(): readonly MergeEditorPaneToolbarItem[];
15
+ set toolbarItems(toolbarItems: readonly MergeEditorPaneToolbarItem[]);
16
+ protected init(): void;
17
+ protected onActivateRequest(msg: Message): void;
18
+ protected render(): React.ReactNode;
19
+ private readonly handleToolbarClick;
20
+ protected renderWithIcons(text: string): React.ReactNode[];
21
+ protected renderToolbarItem({ id, label, tooltip, className, onClick }: MergeEditorPaneToolbarItem): React.ReactNode;
22
+ }
23
+ export interface MergeEditorPaneToolbarItem {
24
+ readonly id: string;
25
+ readonly label?: string;
26
+ readonly tooltip?: string;
27
+ readonly className?: string;
28
+ readonly onClick?: (event: React.MouseEvent) => void;
29
+ }
30
+ //# sourceMappingURL=merge-editor-pane-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-pane-header.d.ts","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.tsx"],"names":[],"mappings":";AAiBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAW,OAAO,EAAc,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,qBACa,qBAAsB,SAAQ,WAAW;IAGlD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAE5C,OAAO,CAAC,YAAY,CAAM;IAC1B,IAAI,WAAW,IAAI,MAAM,CAExB;IACD,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAGlC;IAED,OAAO,CAAC,OAAO,CAAM;IACrB,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAGxB;IAED,OAAO,CAAC,aAAa,CAAwC;IAC7D,IAAI,YAAY,IAAI,SAAS,0BAA0B,EAAE,CAExD;IACD,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,0BAA0B,EAAE,EAGnE;IAGD,SAAS,CAAC,IAAI,IAAI,IAAI;cAQH,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;cAKrC,MAAM,IAAI,KAAK,CAAC,SAAS;IAW5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6E;IAEhH,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;IAa1D,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,KAAK,CAAC,SAAS;CAGvH;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACxD"}
@@ -0,0 +1,102 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MergeEditorPaneHeader = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const React = require("@theia/core/shared/react");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const label_parser_1 = require("@theia/core/lib/browser/label-parser");
24
+ let MergeEditorPaneHeader = class MergeEditorPaneHeader extends browser_1.ReactWidget {
25
+ constructor() {
26
+ super(...arguments);
27
+ this._description = '';
28
+ this._detail = '';
29
+ this.handleToolbarClick = (event) => event.nativeEvent.stopImmediatePropagation();
30
+ }
31
+ get description() {
32
+ return this._description;
33
+ }
34
+ set description(description) {
35
+ this._description = description;
36
+ this.update();
37
+ }
38
+ get detail() {
39
+ return this._detail;
40
+ }
41
+ set detail(detail) {
42
+ this._detail = detail;
43
+ this.update();
44
+ }
45
+ get toolbarItems() {
46
+ return this._toolbarItems;
47
+ }
48
+ set toolbarItems(toolbarItems) {
49
+ this._toolbarItems = toolbarItems;
50
+ this.update();
51
+ }
52
+ init() {
53
+ this.addClass('header');
54
+ this.scrollOptions = undefined;
55
+ this.node.tabIndex = -1;
56
+ this.toDispose.push((0, browser_1.onDomEvent)(this.node, 'click', () => this.activate()));
57
+ this.title.changed.connect(this.update, this);
58
+ }
59
+ onActivateRequest(msg) {
60
+ var _a;
61
+ super.onActivateRequest(msg);
62
+ (_a = this.parent) === null || _a === void 0 ? void 0 : _a.activate();
63
+ }
64
+ render() {
65
+ return (React.createElement(React.Fragment, null,
66
+ React.createElement("span", { className: 'title' }, this.renderWithIcons(this.title.label)),
67
+ React.createElement("span", { className: 'description' }, this.renderWithIcons(this.description)),
68
+ React.createElement("span", { className: 'detail' }, this.renderWithIcons(this.detail)),
69
+ React.createElement("span", { className: 'toolbar', onClick: this.handleToolbarClick }, this.toolbarItems.map(toolbarItem => this.renderToolbarItem(toolbarItem)))));
70
+ }
71
+ renderWithIcons(text) {
72
+ const result = [];
73
+ const labelParts = this.labelParser.parse(text);
74
+ labelParts.forEach((labelPart, index) => {
75
+ if (typeof labelPart === 'string') {
76
+ result.push(labelPart);
77
+ }
78
+ else {
79
+ result.push(React.createElement("span", { key: index, className: (0, browser_1.codicon)(labelPart.name) }));
80
+ }
81
+ });
82
+ return result;
83
+ }
84
+ renderToolbarItem({ id, label, tooltip, className, onClick }) {
85
+ return React.createElement("span", { key: id, title: tooltip, onClick: onClick, className: className }, label);
86
+ }
87
+ };
88
+ exports.MergeEditorPaneHeader = MergeEditorPaneHeader;
89
+ tslib_1.__decorate([
90
+ (0, inversify_1.inject)(label_parser_1.LabelParser),
91
+ tslib_1.__metadata("design:type", label_parser_1.LabelParser)
92
+ ], MergeEditorPaneHeader.prototype, "labelParser", void 0);
93
+ tslib_1.__decorate([
94
+ (0, inversify_1.postConstruct)(),
95
+ tslib_1.__metadata("design:type", Function),
96
+ tslib_1.__metadata("design:paramtypes", []),
97
+ tslib_1.__metadata("design:returntype", void 0)
98
+ ], MergeEditorPaneHeader.prototype, "init", null);
99
+ exports.MergeEditorPaneHeader = MergeEditorPaneHeader = tslib_1.__decorate([
100
+ (0, inversify_1.injectable)()
101
+ ], MergeEditorPaneHeader);
102
+ //# sourceMappingURL=merge-editor-pane-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-pane-header.js","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { DisposableCollection } from '@theia/core';
2
+ import { Observable } from '@theia/core/lib/common/observable';
3
+ import { BoxPanel, Message } from '@theia/core/lib/browser';
4
+ import { EditorDecoration, EditorWidget, Position, Range } from '@theia/editor/lib/browser';
5
+ import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
6
+ import { MergeEditorPaneHeader, MergeEditorPaneToolbarItem } from './merge-editor-pane-header';
7
+ import { MergeEditor } from '../../merge-editor';
8
+ import { MergeRange } from '../../model/merge-range';
9
+ import { DetailedLineRangeMapping } from '../../model/range-mapping';
10
+ import { LineRange } from '../../model/line-range';
11
+ export declare abstract class MergeEditorPane extends BoxPanel {
12
+ readonly header: MergeEditorPaneHeader;
13
+ readonly editorWidget: EditorWidget;
14
+ private readonly m2p;
15
+ get editor(): MonacoEditor;
16
+ protected _mergeEditor: MergeEditor;
17
+ protected cursorPositionObservable: Observable<Position>;
18
+ protected cursorLineObservable: Observable<number>;
19
+ protected selectionObservable: Observable<Range[] | undefined>;
20
+ protected readonly toDispose: DisposableCollection;
21
+ constructor();
22
+ protected init(): void;
23
+ dispose(): void;
24
+ get mergeEditor(): MergeEditor;
25
+ set mergeEditor(mergeEditor: MergeEditor);
26
+ protected onAfterMergeEditorSet(): void;
27
+ get cursorPosition(): Position;
28
+ get cursorLine(): number;
29
+ get selection(): Range[] | undefined;
30
+ goToMergeRange(mergeRange: MergeRange, options?: {
31
+ reveal?: boolean;
32
+ }): void;
33
+ abstract getLineRangeForMergeRange(mergeRange: MergeRange): LineRange;
34
+ protected abstract translateBaseRange(range: Range): Range;
35
+ protected getToolbarItems(): MergeEditorPaneToolbarItem[];
36
+ protected computeEditorDecorations(): EditorDecoration[];
37
+ protected toMergeRangeDecoration(lineRange: LineRange, { isHandled, isFocused, isAfterEnd }: {
38
+ isHandled: boolean;
39
+ isFocused: boolean;
40
+ isAfterEnd: boolean;
41
+ }): EditorDecoration;
42
+ protected toChangeDecorations(changes: readonly DetailedLineRangeMapping[], { diffSide }: {
43
+ diffSide: 'original' | 'modified';
44
+ }): EditorDecoration[];
45
+ protected initContextKeys(): void;
46
+ protected initSelectionSynchronizer(): void;
47
+ protected onActivateRequest(msg: Message): void;
48
+ }
49
+ //# sourceMappingURL=merge-editor-pane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-pane.d.ts","sourceRoot":"","sources":["../../../../../src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAA8B,UAAU,EAAuB,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAsC,QAAQ,EAAE,KAAK,EAA0B,MAAM,2BAA2B,CAAC;AACxJ,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,8BACsB,eAAgB,SAAQ,QAAQ;IAGlD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAGvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAGpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAEhD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IAEpC,SAAS,CAAC,wBAAwB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzD,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,SAAS,CAAC,mBAAmB,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;IAE/D,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;;IAQ1D,SAAS,CAAC,IAAI,IAAI,IAAI;IAeb,OAAO,IAAI,IAAI;IAKxB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,EAMvC;IAED,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAwBvC,IAAI,cAAc,IAAI,QAAQ,CAE7B;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,SAAS,IAAI,KAAK,EAAE,GAAG,SAAS,CAEnC;IAED,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAU5E,QAAQ,CAAC,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS;IAErE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAE1D,SAAS,CAAC,eAAe,IAAI,0BAA0B,EAAE;IAIzD,SAAS,CAAC,wBAAwB,IAAI,gBAAgB,EAAE;IAIxD,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EACjD,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,GACtG,gBAAgB;IA8BnB,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,EACtE,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAA;KAAE,GACpD,gBAAgB,EAAE;IA8BrB,SAAS,CAAC,eAAe,IAAI,IAAI;IAOjC,SAAS,CAAC,yBAAyB,IAAI,IAAI;cAkBxB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;CAI3D"}