@theia/scm 1.64.0-next.28 → 1.64.0

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 (125) hide show
  1. package/lib/browser/decorations/scm-decorations-service.d.ts.map +1 -1
  2. package/lib/browser/decorations/scm-decorations-service.js +19 -1
  3. package/lib/browser/decorations/scm-decorations-service.js.map +1 -1
  4. package/lib/browser/merge-editor/merge-editor-contribution.d.ts +34 -0
  5. package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +1 -0
  6. package/lib/browser/merge-editor/merge-editor-contribution.js +335 -0
  7. package/lib/browser/merge-editor/merge-editor-contribution.js.map +1 -0
  8. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +31 -0
  9. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +1 -0
  10. package/lib/browser/merge-editor/merge-editor-dev-contribution.js +151 -0
  11. package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +1 -0
  12. package/lib/browser/merge-editor/merge-editor-module.d.ts +24 -0
  13. package/lib/browser/merge-editor/merge-editor-module.d.ts.map +1 -0
  14. package/lib/browser/merge-editor/merge-editor-module.js +109 -0
  15. package/lib/browser/merge-editor/merge-editor-module.js.map +1 -0
  16. package/lib/browser/merge-editor/merge-editor.d.ts +122 -0
  17. package/lib/browser/merge-editor/merge-editor.d.ts.map +1 -0
  18. package/lib/browser/merge-editor/merge-editor.js +560 -0
  19. package/lib/browser/merge-editor/merge-editor.js.map +1 -0
  20. package/lib/browser/merge-editor/model/line-range.d.ts +37 -0
  21. package/lib/browser/merge-editor/model/line-range.d.ts.map +1 -0
  22. package/lib/browser/merge-editor/model/line-range.js +111 -0
  23. package/lib/browser/merge-editor/model/line-range.js.map +1 -0
  24. package/lib/browser/merge-editor/model/live-diff.d.ts +26 -0
  25. package/lib/browser/merge-editor/model/live-diff.d.ts.map +1 -0
  26. package/lib/browser/merge-editor/model/live-diff.js +85 -0
  27. package/lib/browser/merge-editor/model/live-diff.js.map +1 -0
  28. package/lib/browser/merge-editor/model/merge-editor-model.d.ts +116 -0
  29. package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +1 -0
  30. package/lib/browser/merge-editor/model/merge-editor-model.js +507 -0
  31. package/lib/browser/merge-editor/model/merge-editor-model.js.map +1 -0
  32. package/lib/browser/merge-editor/model/merge-range.d.ts +50 -0
  33. package/lib/browser/merge-editor/model/merge-range.d.ts.map +1 -0
  34. package/lib/browser/merge-editor/model/merge-range.js +215 -0
  35. package/lib/browser/merge-editor/model/merge-range.js.map +1 -0
  36. package/lib/browser/merge-editor/model/range-editing.d.ts +21 -0
  37. package/lib/browser/merge-editor/model/range-editing.d.ts.map +1 -0
  38. package/lib/browser/merge-editor/model/range-editing.js +68 -0
  39. package/lib/browser/merge-editor/model/range-editing.js.map +1 -0
  40. package/lib/browser/merge-editor/model/range-mapping.d.ts +106 -0
  41. package/lib/browser/merge-editor/model/range-mapping.d.ts.map +1 -0
  42. package/lib/browser/merge-editor/model/range-mapping.js +252 -0
  43. package/lib/browser/merge-editor/model/range-mapping.js.map +1 -0
  44. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +2 -0
  45. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +1 -0
  46. package/lib/browser/merge-editor/model/range-mapping.spec.js +48 -0
  47. package/lib/browser/merge-editor/model/range-mapping.spec.js.map +1 -0
  48. package/lib/browser/merge-editor/model/range-utils.d.ts +25 -0
  49. package/lib/browser/merge-editor/model/range-utils.d.ts.map +1 -0
  50. package/lib/browser/merge-editor/model/range-utils.js +118 -0
  51. package/lib/browser/merge-editor/model/range-utils.js.map +1 -0
  52. package/lib/browser/merge-editor/view/diff-spacers.d.ts +50 -0
  53. package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +1 -0
  54. package/lib/browser/merge-editor/view/diff-spacers.js +133 -0
  55. package/lib/browser/merge-editor/view/diff-spacers.js.map +1 -0
  56. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +6 -0
  57. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +1 -0
  58. package/lib/browser/merge-editor/view/merge-editor-panes/index.js +24 -0
  59. package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +1 -0
  60. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +12 -0
  61. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +1 -0
  62. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +65 -0
  63. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +1 -0
  64. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +30 -0
  65. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +1 -0
  66. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +102 -0
  67. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -0
  68. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +49 -0
  69. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +1 -0
  70. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +214 -0
  71. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +1 -0
  72. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +16 -0
  73. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +1 -0
  74. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +107 -0
  75. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +1 -0
  76. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +27 -0
  77. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +1 -0
  78. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +135 -0
  79. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +1 -0
  80. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +20 -0
  81. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +1 -0
  82. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +218 -0
  83. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +1 -0
  84. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +57 -0
  85. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +1 -0
  86. package/lib/browser/merge-editor/view/merge-editor-view-zones.js +218 -0
  87. package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +1 -0
  88. package/lib/browser/merge-editor/view/merge-range-actions.d.ts +23 -0
  89. package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +1 -0
  90. package/lib/browser/merge-editor/view/merge-range-actions.js +142 -0
  91. package/lib/browser/merge-editor/view/merge-range-actions.js.map +1 -0
  92. package/lib/browser/scm-colors.d.ts +2 -0
  93. package/lib/browser/scm-colors.d.ts.map +1 -1
  94. package/lib/browser/scm-colors.js +2 -0
  95. package/lib/browser/scm-colors.js.map +1 -1
  96. package/lib/browser/scm-frontend-module.d.ts.map +1 -1
  97. package/lib/browser/scm-frontend-module.js +2 -0
  98. package/lib/browser/scm-frontend-module.js.map +1 -1
  99. package/package.json +7 -7
  100. package/src/browser/decorations/scm-decorations-service.ts +18 -1
  101. package/src/browser/merge-editor/merge-editor-contribution.ts +346 -0
  102. package/src/browser/merge-editor/merge-editor-dev-contribution.ts +154 -0
  103. package/src/browser/merge-editor/merge-editor-module.ts +134 -0
  104. package/src/browser/merge-editor/merge-editor.ts +643 -0
  105. package/src/browser/merge-editor/model/line-range.ts +128 -0
  106. package/src/browser/merge-editor/model/live-diff.ts +111 -0
  107. package/src/browser/merge-editor/model/merge-editor-model.ts +623 -0
  108. package/src/browser/merge-editor/model/merge-range.ts +268 -0
  109. package/src/browser/merge-editor/model/range-editing.ts +81 -0
  110. package/src/browser/merge-editor/model/range-mapping.spec.ts +52 -0
  111. package/src/browser/merge-editor/model/range-mapping.ts +396 -0
  112. package/src/browser/merge-editor/model/range-utils.ts +115 -0
  113. package/src/browser/merge-editor/view/diff-spacers.ts +160 -0
  114. package/src/browser/merge-editor/view/merge-editor-panes/index.ts +21 -0
  115. package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.ts +71 -0
  116. package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.tsx +106 -0
  117. package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.ts +246 -0
  118. package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.ts +115 -0
  119. package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.ts +139 -0
  120. package/src/browser/merge-editor/view/merge-editor-scroll-sync.ts +241 -0
  121. package/src/browser/merge-editor/view/merge-editor-view-zones.ts +264 -0
  122. package/src/browser/merge-editor/view/merge-range-actions.ts +159 -0
  123. package/src/browser/scm-colors.ts +2 -0
  124. package/src/browser/scm-frontend-module.ts +4 -0
  125. package/src/browser/style/merge-editor.css +221 -0
@@ -0,0 +1,142 @@
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/view/conflictActions.ts
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.MergeRangeActions = void 0;
24
+ const observable_1 = require("@theia/core/lib/common/observable");
25
+ const merge_range_1 = require("../model/merge-range");
26
+ const core_1 = require("@theia/core");
27
+ class MergeRangeActions {
28
+ get hasSideActions() { return this.hasSideActionsObservable.get(); }
29
+ get hasResultActions() { return this.hasResultActionsObservable.get(); }
30
+ constructor(mergeEditor, mergeRange) {
31
+ this.mergeEditor = mergeEditor;
32
+ this.mergeRange = mergeRange;
33
+ this.side1ActionsObservable = observable_1.DerivedObservable.create(() => this.getActionsForSide(1));
34
+ this.side2ActionsObservable = observable_1.DerivedObservable.create(() => this.getActionsForSide(2));
35
+ this.resultActionsObservable = observable_1.DerivedObservable.create(() => this.getResultActions());
36
+ this.hasSideActionsObservable = observable_1.DerivedObservable.create(() => this.side1ActionsObservable.get().length + this.side2ActionsObservable.get().length > 0);
37
+ this.hasResultActionsObservable = observable_1.DerivedObservable.create(() => this.resultActionsObservable.get().length > 0);
38
+ }
39
+ getActionsForSide(side) {
40
+ const { mergeEditor, mergeRange } = this;
41
+ const { model, side1Title, side2Title } = mergeEditor;
42
+ if (!model.hasMergeRange(mergeRange)) {
43
+ return [];
44
+ }
45
+ const result = [];
46
+ const sideTitle = side === 1 ? side1Title : side2Title;
47
+ const state = model.getMergeRangeResultState(mergeRange);
48
+ if (state !== 'Unrecognized' && !state.includes('Side' + side)) {
49
+ if (state !== 'Base' || mergeRange.getChanges(side).length) {
50
+ result.push({
51
+ text: core_1.nls.localizeByDefault('Accept {0}', sideTitle),
52
+ tooltip: core_1.nls.localizeByDefault('Accept {0} in the result document.', sideTitle),
53
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, merge_range_1.MergeRangeAcceptedState.addSide(state, side))
54
+ });
55
+ }
56
+ if (mergeRange.canBeSmartCombined(side)) {
57
+ result.push({
58
+ text: mergeRange.isSmartCombinationOrderRelevant ?
59
+ core_1.nls.localizeByDefault('Accept Combination ({0} First)', sideTitle) :
60
+ core_1.nls.localizeByDefault('Accept Combination'),
61
+ tooltip: core_1.nls.localizeByDefault('Accept an automatic combination of both sides in the result document.'),
62
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, merge_range_1.MergeRangeAcceptedState.addSide(side === 1 ? 'Side1' : 'Side2', side === 1 ? 2 : 1, { smartCombination: true }))
63
+ });
64
+ }
65
+ }
66
+ return result;
67
+ }
68
+ getResultActions() {
69
+ const { mergeEditor, mergeRange } = this;
70
+ const { model, side1Title, side2Title } = mergeEditor;
71
+ if (!model.hasMergeRange(mergeRange)) {
72
+ return [];
73
+ }
74
+ const result = [];
75
+ const state = model.getMergeRangeResultState(mergeRange);
76
+ if (state === 'Unrecognized') {
77
+ result.push({
78
+ text: core_1.nls.localizeByDefault('Manual Resolution'),
79
+ tooltip: core_1.nls.localizeByDefault('This conflict has been resolved manually.')
80
+ });
81
+ result.push({
82
+ text: core_1.nls.localizeByDefault('Reset to base'),
83
+ tooltip: core_1.nls.localizeByDefault('Reset this conflict to the common ancestor of both the right and left changes.'),
84
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, 'Base')
85
+ });
86
+ }
87
+ else if (state === 'Base') {
88
+ result.push({
89
+ text: core_1.nls.localizeByDefault('No Changes Accepted'),
90
+ tooltip: core_1.nls.localizeByDefault('The current resolution of this conflict equals the common ancestor of both the right and left changes.')
91
+ });
92
+ if (!model.isMergeRangeHandled(mergeRange)) {
93
+ result.push({
94
+ text: core_1.nls.localizeByDefault('Mark as Handled'),
95
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, state)
96
+ });
97
+ }
98
+ }
99
+ else {
100
+ const labels = [];
101
+ const stateToggles = [];
102
+ if (state.includes('Side1')) {
103
+ labels.push(side1Title);
104
+ stateToggles.push({
105
+ text: core_1.nls.localizeByDefault('Remove {0}', side1Title),
106
+ tooltip: core_1.nls.localizeByDefault('Remove {0} from the result document.', side1Title),
107
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, merge_range_1.MergeRangeAcceptedState.removeSide(state, 1))
108
+ });
109
+ }
110
+ if (state.includes('Side2')) {
111
+ labels.push(side2Title);
112
+ stateToggles.push({
113
+ text: core_1.nls.localizeByDefault('Remove {0}', side2Title),
114
+ tooltip: core_1.nls.localizeByDefault('Remove {0} from the result document.', side2Title),
115
+ run: () => this.applyMergeRangeAcceptedState(mergeRange, merge_range_1.MergeRangeAcceptedState.removeSide(state, 2))
116
+ });
117
+ }
118
+ if (state.startsWith('Side2')) {
119
+ labels.reverse();
120
+ stateToggles.reverse();
121
+ }
122
+ if (labels.length) {
123
+ result.push({
124
+ text: labels.join(' + ')
125
+ });
126
+ }
127
+ result.push(...stateToggles);
128
+ }
129
+ return result;
130
+ }
131
+ async applyMergeRangeAcceptedState(mergeRange, state) {
132
+ const { model, resultPane } = this.mergeEditor;
133
+ resultPane.activate();
134
+ await observable_1.ObservableUtils.waitForState(model.isUpToDateObservable);
135
+ resultPane.goToMergeRange(mergeRange, { reveal: false }); // set the cursor state that will be restored when undoing the operation
136
+ model.applyMergeRangeAcceptedState(mergeRange, state);
137
+ await observable_1.ObservableUtils.waitForState(model.isUpToDateObservable);
138
+ resultPane.goToMergeRange(mergeRange, { reveal: false }); // set the resulting cursor state
139
+ }
140
+ }
141
+ exports.MergeRangeActions = MergeRangeActions;
142
+ //# sourceMappingURL=merge-range-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-range-actions.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/merge-range-actions.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,7 @@ export declare namespace ScmColors {
2
2
  const editorGutterModifiedBackground = "editorGutter.modifiedBackground";
3
3
  const editorGutterAddedBackground = "editorGutter.addedBackground";
4
4
  const editorGutterDeletedBackground = "editorGutter.deletedBackground";
5
+ const handledConflictMinimapOverviewRulerColor = "mergeEditor.conflict.handled.minimapOverViewRuler";
6
+ const unhandledConflictMinimapOverviewRulerColor = "mergeEditor.conflict.unhandled.minimapOverViewRuler";
5
7
  }
6
8
  //# sourceMappingURL=scm-colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scm-colors.d.ts","sourceRoot":"","sources":["../../src/browser/scm-colors.ts"],"names":[],"mappings":"AAgBA,yBAAiB,SAAS,CAAC;IAChB,MAAM,8BAA8B,oCAAoC,CAAC;IACzE,MAAM,2BAA2B,iCAAiC,CAAC;IACnE,MAAM,6BAA6B,mCAAmC,CAAC;CACjF"}
1
+ {"version":3,"file":"scm-colors.d.ts","sourceRoot":"","sources":["../../src/browser/scm-colors.ts"],"names":[],"mappings":"AAgBA,yBAAiB,SAAS,CAAC;IAChB,MAAM,8BAA8B,oCAAoC,CAAC;IACzE,MAAM,2BAA2B,iCAAiC,CAAC;IACnE,MAAM,6BAA6B,mCAAmC,CAAC;IACvE,MAAM,wCAAwC,sDAAsD,CAAC;IACrG,MAAM,0CAA0C,wDAAwD,CAAC;CACnH"}
@@ -21,5 +21,7 @@ var ScmColors;
21
21
  ScmColors.editorGutterModifiedBackground = 'editorGutter.modifiedBackground';
22
22
  ScmColors.editorGutterAddedBackground = 'editorGutter.addedBackground';
23
23
  ScmColors.editorGutterDeletedBackground = 'editorGutter.deletedBackground';
24
+ ScmColors.handledConflictMinimapOverviewRulerColor = 'mergeEditor.conflict.handled.minimapOverViewRuler';
25
+ ScmColors.unhandledConflictMinimapOverviewRulerColor = 'mergeEditor.conflict.unhandled.minimapOverViewRuler';
24
26
  })(ScmColors || (exports.ScmColors = ScmColors = {}));
25
27
  //# sourceMappingURL=scm-colors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scm-colors.js","sourceRoot":"","sources":["../../src/browser/scm-colors.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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,IAAiB,SAAS,CAIzB;AAJD,WAAiB,SAAS;IACT,wCAA8B,GAAG,iCAAiC,CAAC;IACnE,qCAA2B,GAAG,8BAA8B,CAAC;IAC7D,uCAA6B,GAAG,gCAAgC,CAAC;AAClF,CAAC,EAJgB,SAAS,yBAAT,SAAS,QAIzB"}
1
+ {"version":3,"file":"scm-colors.js","sourceRoot":"","sources":["../../src/browser/scm-colors.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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,IAAiB,SAAS,CAMzB;AAND,WAAiB,SAAS;IACT,wCAA8B,GAAG,iCAAiC,CAAC;IACnE,qCAA2B,GAAG,8BAA8B,CAAC;IAC7D,uCAA6B,GAAG,gCAAgC,CAAC;IACjE,kDAAwC,GAAG,mDAAmD,CAAC;IAC/F,oDAA0C,GAAG,qDAAqD,CAAC;AACpH,CAAC,EANgB,SAAS,yBAAT,SAAS,QAMzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"scm-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/scm-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;;AA6BtF,wBA2EG;AAEH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAiB9E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAKhF"}
1
+ {"version":3,"file":"scm-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/scm-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;;AA+BtF,wBA6EG;AAEH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAiB9E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,SAAS,CAKhF"}
@@ -41,6 +41,7 @@ const label_provider_1 = require("@theia/core/lib/browser/label-provider");
41
41
  const scm_preferences_1 = require("./scm-preferences");
42
42
  const scm_tab_bar_decorator_1 = require("./decorations/scm-tab-bar-decorator");
43
43
  const tab_bar_decorator_1 = require("@theia/core/lib/browser/shell/tab-bar-decorator");
44
+ const merge_editor_module_1 = require("./merge-editor/merge-editor-module");
44
45
  exports.default = new inversify_1.ContainerModule(bind => {
45
46
  bind(scm_context_key_service_1.ScmContextKeyService).toSelf().inSingletonScope();
46
47
  bind(scm_service_1.ScmService).toSelf().inSingletonScope();
@@ -103,6 +104,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
103
104
  (0, scm_preferences_1.bindScmPreferences)(bind);
104
105
  bind(scm_tab_bar_decorator_1.ScmTabBarDecorator).toSelf().inSingletonScope();
105
106
  bind(tab_bar_decorator_1.TabBarDecorator).toService(scm_tab_bar_decorator_1.ScmTabBarDecorator);
107
+ (0, merge_editor_module_1.bindMergeEditor)(bind);
106
108
  });
107
109
  function createScmTreeContainer(parent) {
108
110
  const child = (0, browser_1.createTreeContainer)(parent, {
@@ -1 +1 @@
1
- {"version":3,"file":"scm-frontend-module.js","sourceRoot":"","sources":["../../src/browser/scm-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scm-frontend-module.js","sourceRoot":"","sources":["../../src/browser/scm-frontend-module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@theia/scm",
3
- "version": "1.64.0-next.28+c0fda4c47",
3
+ "version": "1.64.0",
4
4
  "description": "Theia - Source control Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.64.0-next.28+c0fda4c47",
7
- "@theia/editor": "1.64.0-next.28+c0fda4c47",
8
- "@theia/filesystem": "1.64.0-next.28+c0fda4c47",
9
- "@theia/monaco": "1.64.0-next.28+c0fda4c47",
6
+ "@theia/core": "1.64.0",
7
+ "@theia/editor": "1.64.0",
8
+ "@theia/filesystem": "1.64.0",
9
+ "@theia/monaco": "1.64.0",
10
10
  "@theia/monaco-editor-core": "1.96.302",
11
11
  "@types/diff": "^5.2.1",
12
12
  "diff": "^5.2.0",
@@ -49,10 +49,10 @@
49
49
  "watch": "theiaext watch"
50
50
  },
51
51
  "devDependencies": {
52
- "@theia/ext-scripts": "1.63.0"
52
+ "@theia/ext-scripts": "1.64.0"
53
53
  },
54
54
  "nyc": {
55
55
  "extends": "../../configs/nyc.json"
56
56
  },
57
- "gitHead": "c0fda4c4706fcd4ec1616c8e2f24673352a707d1"
57
+ "gitHead": "4c074e0d16c48e96a044b2f8bc4717de2e031c4b"
58
58
  }
@@ -52,6 +52,17 @@ export class ScmDecorationsService {
52
52
  updateTask();
53
53
  }
54
54
  }));
55
+ if (editor.onShouldDisplayDirtyDiffChanged) {
56
+ toDispose.push(editor.onShouldDisplayDirtyDiffChanged(shouldDisplayDirtyDiff => {
57
+ if (shouldDisplayDirtyDiff) {
58
+ updateTask();
59
+ } else {
60
+ const update: DirtyDiffUpdate = { editor, changes: [] };
61
+ this.decorator.applyDecorations(update);
62
+ this.onDirtyDiffUpdateEmitter.fire(update);
63
+ }
64
+ }));
65
+ }
55
66
  editorWidget.disposed.connect(() => {
56
67
  updateTask.cancel();
57
68
  updateTasks.delete(editorWidget);
@@ -72,6 +83,9 @@ export class ScmDecorationsService {
72
83
  }
73
84
 
74
85
  async applyEditorDecorations(editor: TextEditor): Promise<void> {
86
+ if (!editor.shouldDisplayDirtyDiff()) {
87
+ return;
88
+ }
75
89
  const currentRepo = this.scmService.selectedRepository;
76
90
  if (currentRepo) {
77
91
  try {
@@ -82,6 +96,9 @@ export class ScmDecorationsService {
82
96
  const previousResource = await this.resourceProvider(uri);
83
97
  try {
84
98
  const previousContent = await previousResource.readContents();
99
+ if (!editor.shouldDisplayDirtyDiff()) { // check again; it might have changed in the meantime, since this is an async method
100
+ return;
101
+ }
85
102
  const previousLines = ContentLines.fromString(previousContent);
86
103
  const currentLines = ContentLines.fromTextEditorDocument(editor.document);
87
104
  const dirtyDiff = this.diffComputer.computeDirtyDiff(ContentLines.arrayLike(previousLines), ContentLines.arrayLike(currentLines));
@@ -98,7 +115,7 @@ export class ScmDecorationsService {
98
115
  }
99
116
 
100
117
  protected supportsDirtyDiff(editor: TextEditor): boolean {
101
- return editor.shouldDisplayDirtyDiff();
118
+ return editor.shouldDisplayDirtyDiff() || !!editor.onShouldDisplayDirtyDiffChanged;
102
119
  }
103
120
 
104
121
  protected createUpdateTask(editor: TextEditor): { (): void; cancel(): void; } {
@@ -0,0 +1,346 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 1C-Soft LLC and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { inject, injectable } from '@theia/core/shared/inversify';
18
+ import { Command, CommandContribution, CommandRegistry, MenuContribution, MenuModelRegistry, nls } from '@theia/core';
19
+ import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
20
+ import {
21
+ ApplicationShell,
22
+ codicon,
23
+ ConfirmDialog,
24
+ FrontendApplicationContribution,
25
+ KeybindingContribution,
26
+ KeybindingRegistry,
27
+ LabelProvider
28
+ } from '@theia/core/lib/browser';
29
+ import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution';
30
+ import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
31
+ import { Color } from '@theia/core/lib/common/color';
32
+ import { ScmColors } from '../scm-colors';
33
+ import { MergeEditor, MergeEditorSettings } from './merge-editor';
34
+
35
+ export namespace MergeEditorCommands {
36
+ export const MERGE_EDITOR_CATEGORY = 'Merge Editor';
37
+ export const ACCEPT_MERGE = Command.toDefaultLocalizedCommand({
38
+ id: 'mergeEditor.acceptMerge', // don't change: this is an API command
39
+ label: 'Complete Merge',
40
+ category: MERGE_EDITOR_CATEGORY
41
+ });
42
+ export const GO_TO_NEXT_UNHANDLED_CONFLICT = Command.toDefaultLocalizedCommand({
43
+ id: 'mergeEditor.goToNextUnhandledConflict',
44
+ label: 'Go to Next Unhandled Conflict',
45
+ category: MERGE_EDITOR_CATEGORY
46
+ });
47
+ export const GO_TO_PREVIOUS_UNHANDLED_CONFLICT = Command.toDefaultLocalizedCommand({
48
+ id: 'mergeEditor.goToPreviousUnhandledConflict',
49
+ label: 'Go to Previous Unhandled Conflict',
50
+ category: MERGE_EDITOR_CATEGORY
51
+ });
52
+ export const SET_MIXED_LAYOUT = Command.toDefaultLocalizedCommand({
53
+ id: 'mergeEditor.setMixedLayout',
54
+ label: 'Mixed Layout',
55
+ category: MERGE_EDITOR_CATEGORY
56
+ });
57
+ export const SET_COLUMN_LAYOUT = Command.toDefaultLocalizedCommand({
58
+ id: 'mergeEditor.setColumnLayout',
59
+ label: 'Column Layout',
60
+ category: MERGE_EDITOR_CATEGORY
61
+ });
62
+ export const SHOW_BASE = Command.toDefaultLocalizedCommand({
63
+ id: 'mergeEditor.showBase',
64
+ label: 'Show Base',
65
+ category: MERGE_EDITOR_CATEGORY
66
+ });
67
+ export const SHOW_BASE_TOP = Command.toDefaultLocalizedCommand({
68
+ id: 'mergeEditor.showBaseTop',
69
+ label: 'Show Base Top',
70
+ category: MERGE_EDITOR_CATEGORY
71
+ });
72
+ export const SHOW_BASE_CENTER = Command.toDefaultLocalizedCommand({
73
+ id: 'mergeEditor.showBaseCenter',
74
+ label: 'Show Base Center',
75
+ category: MERGE_EDITOR_CATEGORY
76
+ });
77
+ }
78
+
79
+ @injectable()
80
+ export class MergeEditorContribution implements FrontendApplicationContribution,
81
+ CommandContribution, MenuContribution, TabBarToolbarContribution, KeybindingContribution, ColorContribution {
82
+
83
+ @inject(MergeEditorSettings)
84
+ protected readonly settings: MergeEditorSettings;
85
+
86
+ @inject(ApplicationShell)
87
+ protected readonly shell: ApplicationShell;
88
+
89
+ @inject(LabelProvider)
90
+ protected readonly labelProvider: LabelProvider;
91
+
92
+ onStart(): void {
93
+ this.settings.load();
94
+ }
95
+
96
+ onStop(): void {
97
+ this.settings.save();
98
+ }
99
+
100
+ protected getMergeEditor(widget = this.shell.currentWidget): MergeEditor | undefined {
101
+ return widget instanceof MergeEditor ? widget : (widget?.parent ? this.getMergeEditor(widget.parent) : undefined);
102
+ }
103
+
104
+ registerCommands(commands: CommandRegistry): void {
105
+ commands.registerCommand(MergeEditorCommands.ACCEPT_MERGE, {
106
+ execute: async widget => {
107
+ const editor = this.getMergeEditor(widget);
108
+ if (editor) {
109
+ let canceled = false;
110
+ if (editor.model.unhandledMergeRangesCount > 0) {
111
+ canceled = !(await new ConfirmDialog({
112
+ title: nls.localizeByDefault('Do you want to complete the merge of {0}?', this.labelProvider.getName(editor.resultUri)),
113
+ msg: nls.localizeByDefault('The file contains unhandled conflicts.'),
114
+ ok: nls.localizeByDefault('Complete with Conflicts')
115
+ }).open());
116
+ }
117
+ if (!canceled) {
118
+ await editor.model.resultDocument.save();
119
+ editor.close();
120
+ return {
121
+ successful: true
122
+ };
123
+ }
124
+ }
125
+ return {
126
+ successful: false
127
+ };
128
+ },
129
+ isEnabled: widget => !!this.getMergeEditor(widget),
130
+ isVisible: widget => !!this.getMergeEditor(widget)
131
+ });
132
+ commands.registerCommand(MergeEditorCommands.GO_TO_NEXT_UNHANDLED_CONFLICT, {
133
+ execute: widget => {
134
+ const editor = this.getMergeEditor(widget);
135
+ if (editor) {
136
+ editor.goToNextMergeRange(mergeRange => !editor.model.isMergeRangeHandled(mergeRange));
137
+ editor.activate();
138
+ }
139
+ },
140
+ isEnabled: widget => !!this.getMergeEditor(widget),
141
+ isVisible: widget => !!this.getMergeEditor(widget)
142
+ });
143
+ commands.registerCommand(MergeEditorCommands.GO_TO_PREVIOUS_UNHANDLED_CONFLICT, {
144
+ execute: widget => {
145
+ const editor = this.getMergeEditor(widget);
146
+ if (editor) {
147
+ editor.goToPreviousMergeRange(mergeRange => !editor.model.isMergeRangeHandled(mergeRange));
148
+ editor.activate();
149
+ }
150
+ },
151
+ isEnabled: widget => !!this.getMergeEditor(widget),
152
+ isVisible: widget => !!this.getMergeEditor(widget)
153
+ });
154
+ commands.registerCommand(MergeEditorCommands.SET_MIXED_LAYOUT, {
155
+ execute: widget => {
156
+ const editor = this.getMergeEditor(widget);
157
+ if (editor) {
158
+ editor.layoutKind = 'mixed';
159
+ editor.activate();
160
+ }
161
+ },
162
+ isEnabled: widget => !!this.getMergeEditor(widget),
163
+ isVisible: widget => !!this.getMergeEditor(widget),
164
+ isToggled: widget => this.getMergeEditor(widget)?.layoutKind === 'mixed',
165
+ });
166
+ commands.registerCommand(MergeEditorCommands.SET_COLUMN_LAYOUT, {
167
+ execute: widget => {
168
+ const editor = this.getMergeEditor(widget);
169
+ if (editor) {
170
+ editor.layoutKind = 'columns';
171
+ editor.activate();
172
+ }
173
+ },
174
+ isEnabled: widget => !!this.getMergeEditor(widget),
175
+ isVisible: widget => !!this.getMergeEditor(widget),
176
+ isToggled: widget => this.getMergeEditor(widget)?.layoutKind === 'columns'
177
+ });
178
+ commands.registerCommand(MergeEditorCommands.SHOW_BASE, {
179
+ execute: widget => {
180
+ const editor = this.getMergeEditor(widget);
181
+ if (editor) {
182
+ editor.toggleShowBase();
183
+ editor.activate();
184
+ }
185
+ },
186
+ isEnabled: widget => this.getMergeEditor(widget)?.layoutKind === 'columns',
187
+ isVisible: widget => this.getMergeEditor(widget)?.layoutKind === 'columns',
188
+ isToggled: widget => !!this.getMergeEditor(widget)?.isShowingBase
189
+ });
190
+ commands.registerCommand(MergeEditorCommands.SHOW_BASE_TOP, {
191
+ execute: widget => {
192
+ const editor = this.getMergeEditor(widget);
193
+ if (editor) {
194
+ editor.toggleShowBaseTop();
195
+ editor.activate();
196
+ }
197
+ },
198
+ isEnabled: widget => this.getMergeEditor(widget)?.layoutKind === 'mixed',
199
+ isVisible: widget => this.getMergeEditor(widget)?.layoutKind === 'mixed',
200
+ isToggled: widget => !!this.getMergeEditor(widget)?.isShowingBaseAtTop
201
+ });
202
+ commands.registerCommand(MergeEditorCommands.SHOW_BASE_CENTER, {
203
+ execute: widget => {
204
+ const editor = this.getMergeEditor(widget);
205
+ if (editor) {
206
+ editor.toggleShowBaseCenter();
207
+ editor.activate();
208
+ }
209
+ },
210
+ isEnabled: widget => this.getMergeEditor(widget)?.layoutKind === 'mixed',
211
+ isVisible: widget => this.getMergeEditor(widget)?.layoutKind === 'mixed',
212
+ isToggled: widget => {
213
+ const editor = this.getMergeEditor(widget);
214
+ return !!(editor?.isShowingBase && !editor.isShowingBaseAtTop);
215
+ }
216
+ });
217
+ }
218
+
219
+ registerMenus(menus: MenuModelRegistry): void {
220
+ }
221
+
222
+ registerToolbarItems(registry: TabBarToolbarRegistry): void {
223
+ registry.registerItem({
224
+ id: MergeEditorCommands.GO_TO_NEXT_UNHANDLED_CONFLICT.id,
225
+ command: MergeEditorCommands.GO_TO_NEXT_UNHANDLED_CONFLICT.id,
226
+ icon: codicon('arrow-down', true),
227
+ group: 'navigation',
228
+ order: 'a'
229
+ });
230
+ registry.registerItem({
231
+ id: MergeEditorCommands.GO_TO_PREVIOUS_UNHANDLED_CONFLICT.id,
232
+ command: MergeEditorCommands.GO_TO_PREVIOUS_UNHANDLED_CONFLICT.id,
233
+ icon: codicon('arrow-up', true),
234
+ group: 'navigation',
235
+ order: 'b'
236
+ });
237
+ registry.registerItem({
238
+ id: MergeEditorCommands.SET_MIXED_LAYOUT.id,
239
+ command: MergeEditorCommands.SET_MIXED_LAYOUT.id,
240
+ group: '1_merge',
241
+ order: 'a'
242
+ });
243
+ registry.registerItem({
244
+ id: MergeEditorCommands.SET_COLUMN_LAYOUT.id,
245
+ command: MergeEditorCommands.SET_COLUMN_LAYOUT.id,
246
+ group: '1_merge',
247
+ order: 'b'
248
+ });
249
+ registry.registerItem({
250
+ id: MergeEditorCommands.SHOW_BASE.id,
251
+ command: MergeEditorCommands.SHOW_BASE.id,
252
+ group: '2_merge',
253
+ order: 'a'
254
+ });
255
+ registry.registerItem({
256
+ id: MergeEditorCommands.SHOW_BASE_TOP.id,
257
+ command: MergeEditorCommands.SHOW_BASE_TOP.id,
258
+ group: '2_merge',
259
+ order: 'b'
260
+ });
261
+ registry.registerItem({
262
+ id: MergeEditorCommands.SHOW_BASE_CENTER.id,
263
+ command: MergeEditorCommands.SHOW_BASE_CENTER.id,
264
+ group: '2_merge',
265
+ order: 'c'
266
+ });
267
+ }
268
+
269
+ registerKeybindings(keybindings: KeybindingRegistry): void {
270
+ }
271
+
272
+ /**
273
+ * It should be aligned with https://code.visualstudio.com/api/references/theme-color#merge-conflicts-colors
274
+ */
275
+ registerColors(colors: ColorRegistry): void {
276
+ colors.register({
277
+ id: 'mergeEditor.change.background',
278
+ description: 'The background color for changes.',
279
+ defaults: { dark: '#9bb95533', light: '#9bb95533', hcDark: '#9bb95533', hcLight: '#9bb95533' }
280
+ }, {
281
+ id: 'mergeEditor.change.word.background',
282
+ description: 'The background color for word changes.',
283
+ defaults: { dark: '#9ccc2c33', light: '#9ccc2c66', hcDark: '#9ccc2c33', hcLight: '#9ccc2c66' }
284
+ }, {
285
+ id: 'mergeEditor.changeBase.background',
286
+ description: 'The background color for changes in base.',
287
+ defaults: { dark: '#4B1818FF', light: '#FFCCCCFF', hcDark: '#4B1818FF', hcLight: '#FFCCCCFF' }
288
+ }, {
289
+ id: 'mergeEditor.changeBase.word.background',
290
+ description: 'The background color for word changes in base.',
291
+ defaults: { dark: '#6F1313FF', light: '#FFA3A3FF', hcDark: '#6F1313FF', hcLight: '#FFA3A3FF' }
292
+ }, {
293
+ id: 'mergeEditor.conflict.unhandledUnfocused.border',
294
+ description: 'The border color of unhandled unfocused conflicts.',
295
+ defaults: { dark: '#ffa6007a', light: '#ffa600FF', hcDark: '#ffa6007a', hcLight: '#ffa6007a' }
296
+ }, {
297
+ id: 'mergeEditor.conflict.unhandledUnfocused.background',
298
+ description: 'The background color of unhandled unfocused conflicts.',
299
+ defaults: {
300
+ dark: Color.transparent('mergeEditor.conflict.unhandledUnfocused.border', 0.05),
301
+ light: Color.transparent('mergeEditor.conflict.unhandledUnfocused.border', 0.05)
302
+ }
303
+ }, {
304
+ id: 'mergeEditor.conflict.unhandledFocused.border',
305
+ description: 'The border color of unhandled focused conflicts.',
306
+ defaults: { dark: '#ffa600', light: '#ffa600', hcDark: '#ffa600', hcLight: '#ffa600' }
307
+ }, {
308
+ id: 'mergeEditor.conflict.unhandledFocused.background',
309
+ description: 'The background color of unhandled focused conflicts.',
310
+ defaults: {
311
+ dark: Color.transparent('mergeEditor.conflict.unhandledFocused.border', 0.05),
312
+ light: Color.transparent('mergeEditor.conflict.unhandledFocused.border', 0.05)
313
+ }
314
+ }, {
315
+ id: 'mergeEditor.conflict.handledUnfocused.border',
316
+ description: 'The border color of handled unfocused conflicts.',
317
+ defaults: { dark: '#86868649', light: '#86868649', hcDark: '#86868649', hcLight: '#86868649' }
318
+ }, {
319
+ id: 'mergeEditor.conflict.handledUnfocused.background',
320
+ description: 'The background color of handled unfocused conflicts.',
321
+ defaults: {
322
+ dark: Color.transparent('mergeEditor.conflict.handledUnfocused.border', 0.1),
323
+ light: Color.transparent('mergeEditor.conflict.handledUnfocused.border', 0.1)
324
+ }
325
+ }, {
326
+ id: 'mergeEditor.conflict.handledFocused.border',
327
+ description: 'The border color of handled focused conflicts.',
328
+ defaults: { dark: '#c1c1c1cc', light: '#c1c1c1cc', hcDark: '#c1c1c1cc', hcLight: '#c1c1c1cc' }
329
+ }, {
330
+ id: 'mergeEditor.conflict.handledFocused.background',
331
+ description: 'The background color of handled focused conflicts.',
332
+ defaults: {
333
+ dark: Color.transparent('mergeEditor.conflict.handledFocused.border', 0.1),
334
+ light: Color.transparent('mergeEditor.conflict.handledFocused.border', 0.1)
335
+ }
336
+ }, {
337
+ id: ScmColors.handledConflictMinimapOverviewRulerColor,
338
+ description: 'Minimap gutter and overview ruler marker color for handled conflicts.',
339
+ defaults: { dark: '#adaca8ee', light: '#adaca8ee', hcDark: '#adaca8ee', hcLight: '#adaca8ee' }
340
+ }, {
341
+ id: ScmColors.unhandledConflictMinimapOverviewRulerColor,
342
+ description: 'Minimap gutter and overview ruler marker color for unhandled conflicts.',
343
+ defaults: { dark: '#fcba03FF', light: '#fcba03FF', hcDark: '#fcba03FF', hcLight: '#fcba03FF' }
344
+ });
345
+ }
346
+ }