@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
@@ -45,6 +45,8 @@ import { LabelProviderContribution } from '@theia/core/lib/browser/label-provide
45
45
  import { bindScmPreferences } from './scm-preferences';
46
46
  import { ScmTabBarDecorator } from './decorations/scm-tab-bar-decorator';
47
47
  import { TabBarDecorator } from '@theia/core/lib/browser/shell/tab-bar-decorator';
48
+ import { bindMergeEditor } from './merge-editor/merge-editor-module';
49
+
48
50
  export default new ContainerModule(bind => {
49
51
  bind(ScmContextKeyService).toSelf().inSingletonScope();
50
52
  bind(ScmService).toSelf().inSingletonScope();
@@ -120,6 +122,8 @@ export default new ContainerModule(bind => {
120
122
 
121
123
  bind(ScmTabBarDecorator).toSelf().inSingletonScope();
122
124
  bind(TabBarDecorator).toService(ScmTabBarDecorator);
125
+
126
+ bindMergeEditor(bind);
123
127
  });
124
128
 
125
129
  export function createScmTreeContainer(parent: interfaces.Container): Container {
@@ -0,0 +1,221 @@
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
+ * Copyright (c) Microsoft Corporation. All rights reserved.
18
+ * Licensed under the MIT License. See License.txt in the project root for license information.
19
+ *--------------------------------------------------------------------------------------------*/
20
+ /* copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/workbench/contrib/mergeEditor/browser/view/media/mergeEditor.css */
21
+
22
+ .theia-merge-editor .lm-SplitPanel {
23
+ height: 100%;
24
+ width: 100%;
25
+ outline: none;
26
+ }
27
+
28
+ .theia-merge-editor .lm-SplitPanel > .lm-SplitPanel-child {
29
+ min-width: 50px;
30
+ min-height: var(--theia-content-line-height);
31
+ }
32
+
33
+ .theia-merge-editor .lm-SplitPanel > .lm-SplitPanel-handle {
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ .theia-merge-editor .lm-SplitPanel[data-orientation="horizontal"] > .lm-SplitPanel-handle {
38
+ border-left: var(--theia-border-width) solid var(--theia-sideBarSectionHeader-border);
39
+ }
40
+
41
+ .theia-merge-editor .lm-SplitPanel[data-orientation="vertical"] > .lm-SplitPanel-handle {
42
+ border-top: var(--theia-border-width) solid var(--theia-sideBarSectionHeader-border);
43
+ }
44
+
45
+ .theia-merge-editor .editor-pane .monaco-editor {
46
+ outline: none;
47
+ }
48
+
49
+ .theia-merge-editor .editor-pane > .header {
50
+ padding: 0 10px;
51
+ min-height: 30px;
52
+ display: flex;
53
+ align-content: center;
54
+ overflow: hidden;
55
+ outline: none;
56
+ user-select: none;
57
+ }
58
+
59
+ .theia-merge-editor .editor-pane > .header > span {
60
+ align-self: center;
61
+ text-overflow: ellipsis;
62
+ overflow: hidden;
63
+ padding-right: 6px;
64
+ white-space: nowrap;
65
+ }
66
+
67
+ .theia-merge-editor .editor-pane > .header > .title {
68
+ flex-shrink: 0;
69
+ }
70
+
71
+ .theia-merge-editor .editor-pane > .header > .description {
72
+ flex-shrink: 0;
73
+ display: flex;
74
+ font-size: 12px;
75
+ align-items: center;
76
+ color: var(--theia-descriptionForeground);
77
+ }
78
+
79
+ .theia-merge-editor .editor-pane > .header > .description .codicon {
80
+ font-size: 14px;
81
+ color: var(--theia-descriptionForeground);
82
+ }
83
+
84
+ .theia-merge-editor .editor-pane > .header > .detail {
85
+ margin-left: auto;
86
+ font-size: 12px;
87
+ color: var(--theia-descriptionForeground);
88
+ }
89
+
90
+ .theia-merge-editor .editor-pane > .header > .detail .codicon {
91
+ font-size: 13px;
92
+ }
93
+
94
+ .theia-merge-editor .editor-pane > .header > .toolbar {
95
+ flex-shrink: 0;
96
+ display: flex;
97
+ font-size: 11px;
98
+ align-items: center;
99
+ color: var(--theia-descriptionForeground);
100
+ }
101
+
102
+ .theia-merge-editor .editor-pane > .header > .toolbar .codicon {
103
+ color: var(--theia-icon-foreground);
104
+ }
105
+
106
+ .theia-merge-editor .editor-pane > .header > .toolbar .action-label.theia-mod-disabled {
107
+ cursor: default;
108
+ background: none;
109
+ }
110
+
111
+ .theia-merge-editor .editor-pane.side > .header > .detail::before {
112
+ content: '•';
113
+ opacity: .5;
114
+ padding-right: 3px;
115
+ }
116
+
117
+ .theia-merge-editor .editor-pane.side > .header > .detail {
118
+ margin-left: 0;
119
+ }
120
+
121
+ .theia-merge-editor .editor-pane.side > .header > .toolbar {
122
+ margin-left: auto;
123
+ }
124
+
125
+ .theia-merge-editor .editor-pane.result > .header > .description {
126
+ display: inline;
127
+ flex-shrink: 1;
128
+ }
129
+
130
+ .theia-merge-editor .editor-pane.result > .header > .detail {
131
+ flex-shrink: 0;
132
+ }
133
+
134
+ .theia-merge-editor .editor-pane .action-zone .codelens-decoration {
135
+ font-family: var(--vscode-editorCodeLens-fontFamily, var(--theia-ui-font-family));
136
+ }
137
+
138
+ .theia-merge-editor .editor-pane .merge-range:not(.handled):not(.focused) {
139
+ border: 1px solid var(--theia-mergeEditor-conflict-unhandledUnfocused-border);
140
+ background-color: var(--theia-mergeEditor-conflict-unhandledUnfocused-background);
141
+ }
142
+
143
+ .theia-merge-editor .editor-pane .merge-range:not(.handled).focused {
144
+ border: 2px solid var(--theia-mergeEditor-conflict-unhandledFocused-border);
145
+ background-color: var(--theia-mergeEditor-conflict-unhandledFocused-background);
146
+ }
147
+
148
+ .theia-merge-editor .editor-pane .merge-range.handled:not(.focused) {
149
+ border: 1px solid var(--theia-mergeEditor-conflict-handledUnfocused-border);
150
+ background-color: var(--theia-mergeEditor-conflict-handledUnfocused-background);
151
+ }
152
+
153
+ .theia-merge-editor .editor-pane .merge-range.handled.focused {
154
+ border: 2px solid var(--theia-mergeEditor-conflict-handledFocused-border);
155
+ background-color: var(--theia-mergeEditor-conflict-handledFocused-background);
156
+ }
157
+
158
+ .theia-merge-editor .editor-pane .diff {
159
+ background-color: var(--theia-mergeEditor-change-background);
160
+ }
161
+
162
+ .theia-merge-editor .editor-pane.base .diff {
163
+ background-color: var(--theia-mergeEditor-changeBase-background);
164
+ }
165
+
166
+ .theia-merge-editor .editor-pane.side1:not(.focused) .diff {
167
+ background-color: var(--theia-merge-currentContentBackground);
168
+ }
169
+
170
+ .theia-merge-editor .editor-pane.side2:not(.focused) .diff {
171
+ background-color: var(--theia-merge-incomingContentBackground);
172
+ }
173
+
174
+ .theia-merge-editor .editor-pane.result:not(.focused) .diff {
175
+ background-color: var(--theia-merge-commonContentBackground);
176
+ }
177
+
178
+ .theia-merge-editor .editor-pane .diff-word {
179
+ background-color: var(--theia-mergeEditor-change-word-background);
180
+ }
181
+
182
+ .theia-merge-editor .editor-pane.base .diff-word {
183
+ background-color: var(--theia-mergeEditor-changeBase-word-background);
184
+ }
185
+
186
+ .theia-merge-editor .editor-pane.side1:not(.focused) .diff-word {
187
+ background-color: var(--theia-merge-currentHeaderBackground);
188
+ }
189
+
190
+ .theia-merge-editor .editor-pane.side2:not(.focused) .diff-word {
191
+ background-color: var(--theia-merge-incomingHeaderBackground);
192
+ }
193
+
194
+ .theia-merge-editor .editor-pane.result:not(.focused) .diff-word {
195
+ background-color: var(--theia-merge-commonHeaderBackground);
196
+ }
197
+
198
+ .theia-merge-editor .editor-pane .diff-empty-word {
199
+ margin-left: 3px;
200
+ border-left: solid var(--theia-mergeEditor-change-word-background) 3px;
201
+ }
202
+
203
+ .theia-merge-editor .editor-pane.base .diff-empty-word {
204
+ margin-left: 3px;
205
+ border-left: solid var(--theia-mergeEditor-changeBase-word-background) 3px;
206
+ }
207
+
208
+ .theia-merge-editor .editor-pane.side1:not(.focused) .diff-empty-word {
209
+ margin-left: 3px;
210
+ border-left: solid var(--theia-merge-currentHeaderBackground) 3px;
211
+ }
212
+
213
+ .theia-merge-editor .editor-pane.side2:not(.focused) .diff-empty-word {
214
+ margin-left: 3px;
215
+ border-left: solid var(--theia-merge-incomingHeaderBackground) 3px;
216
+ }
217
+
218
+ .theia-merge-editor .editor-pane.result:not(.focused) .diff-empty-word {
219
+ margin-left: 3px;
220
+ border-left: solid var(--theia-merge-commonHeaderBackground) 3px;
221
+ }