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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/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 +222 -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
  218. package/src/browser/scm-widget.tsx +2 -1
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 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.DirtyDiffWidget = exports.DirtyDiffWidgetFactory = exports.DirtyDiffWidgetProps = exports.PLUGIN_SCM_CHANGE_TITLE_MENU = exports.SCM_CHANGE_TITLE_MENU = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
22
+ const core_1 = require("@theia/core");
23
+ const browser_1 = require("@theia/core/lib/browser");
24
+ const context_key_service_1 = require("@theia/core/lib/browser/context-key-service");
25
+ const monaco_editor_provider_1 = require("@theia/monaco/lib/browser/monaco-editor-provider");
26
+ const monaco_editor_peek_view_widget_1 = require("@theia/monaco/lib/browser/monaco-editor-peek-view-widget");
27
+ const diff_computer_1 = require("./diff-computer");
28
+ const scm_colors_1 = require("../scm-colors");
29
+ const monaco = require("@theia/monaco-editor-core");
30
+ exports.SCM_CHANGE_TITLE_MENU = ['scm-change-title-menu'];
31
+ /** Reserved for plugin contributions, corresponds to contribution point 'scm/change/title'. */
32
+ exports.PLUGIN_SCM_CHANGE_TITLE_MENU = ['plugin-scm-change-title-menu'];
33
+ exports.DirtyDiffWidgetProps = Symbol('DirtyDiffWidgetProps');
34
+ exports.DirtyDiffWidgetFactory = Symbol('DirtyDiffWidgetFactory');
35
+ let DirtyDiffWidget = class DirtyDiffWidget {
36
+ constructor(props, editorProvider, contextKeyService, menuModelRegistry) {
37
+ this.props = props;
38
+ this.editorProvider = editorProvider;
39
+ this.contextKeyService = contextKeyService;
40
+ this.menuModelRegistry = menuModelRegistry;
41
+ this.onDidCloseEmitter = new core_1.Emitter();
42
+ this.onDidClose = this.onDidCloseEmitter.event;
43
+ this.index = -1;
44
+ }
45
+ create() {
46
+ this.peekView = new DirtyDiffPeekView(this);
47
+ this.peekView.onDidClose(e => this.onDidCloseEmitter.fire(e));
48
+ this.diffEditorPromise = this.peekView.create();
49
+ }
50
+ get changes() {
51
+ var _a;
52
+ return (_a = this._changes) !== null && _a !== void 0 ? _a : [];
53
+ }
54
+ set changes(changes) {
55
+ this.handleChangedChanges(changes);
56
+ }
57
+ get editor() {
58
+ return this.props.editor;
59
+ }
60
+ get uri() {
61
+ return this.editor.uri;
62
+ }
63
+ get previousRevisionUri() {
64
+ return this.props.previousRevisionUri;
65
+ }
66
+ get currentChange() {
67
+ return this.changes[this.index];
68
+ }
69
+ get currentChangeIndex() {
70
+ return this.index;
71
+ }
72
+ handleChangedChanges(updated) {
73
+ if (!updated.length) {
74
+ return this.dispose();
75
+ }
76
+ if (this.currentChange) {
77
+ const { previousRange: { start, end } } = this.currentChange;
78
+ // Same change or first after it.
79
+ const newIndex = updated.findIndex(candidate => (candidate.previousRange.start === start && candidate.previousRange.end === end)
80
+ || candidate.previousRange.start > start);
81
+ if (newIndex !== -1) {
82
+ this.index = newIndex;
83
+ }
84
+ else {
85
+ this.index = Math.min(this.index, updated.length - 1);
86
+ }
87
+ this.showCurrentChange();
88
+ }
89
+ else {
90
+ this.index = -1;
91
+ }
92
+ this._changes = updated;
93
+ this.updateHeading();
94
+ }
95
+ async showChange(index) {
96
+ await this.checkCreated();
97
+ if (index >= 0 && index < this.changes.length) {
98
+ this.index = index;
99
+ this.showCurrentChange();
100
+ }
101
+ }
102
+ showNextChange() {
103
+ this.checkCreated();
104
+ const index = this.index;
105
+ const length = this.changes.length;
106
+ if (length > 0 && (index < 0 || length > 1)) {
107
+ this.index = index < 0 ? 0 : cycle(index, 1, length);
108
+ this.showCurrentChange();
109
+ }
110
+ }
111
+ showPreviousChange() {
112
+ this.checkCreated();
113
+ const index = this.index;
114
+ const length = this.changes.length;
115
+ if (length > 0 && (index < 0 || length > 1)) {
116
+ this.index = index < 0 ? length - 1 : cycle(index, -1, length);
117
+ this.showCurrentChange();
118
+ }
119
+ }
120
+ async getContentWithSelectedChanges(predicate) {
121
+ await this.checkCreated();
122
+ const changes = this.changes.filter(predicate);
123
+ const { diffEditor } = await this.diffEditorPromise;
124
+ const diffEditorModel = diffEditor.getModel();
125
+ return applyChanges(changes, diffEditorModel.original, diffEditorModel.modified);
126
+ }
127
+ dispose() {
128
+ var _a;
129
+ (_a = this.peekView) === null || _a === void 0 ? void 0 : _a.dispose();
130
+ this.onDidCloseEmitter.dispose();
131
+ }
132
+ showCurrentChange() {
133
+ this.updateHeading();
134
+ const { previousRange, currentRange } = this.changes[this.index];
135
+ this.peekView.show(vscode_languageserver_protocol_1.Position.create(diff_computer_1.LineRange.getEndPosition(currentRange).line, 0), this.computeHeightInLines());
136
+ this.diffEditorPromise.then(({ diffEditor }) => {
137
+ let startLine = diff_computer_1.LineRange.getStartPosition(currentRange).line;
138
+ let endLine = diff_computer_1.LineRange.getEndPosition(currentRange).line;
139
+ if (diff_computer_1.LineRange.isEmpty(currentRange)) { // the change is a removal
140
+ ++endLine;
141
+ }
142
+ else if (!diff_computer_1.LineRange.isEmpty(previousRange)) { // the change is a modification
143
+ --startLine;
144
+ ++endLine;
145
+ }
146
+ diffEditor.revealLinesInCenter(startLine + 1, endLine + 1, // monaco line numbers are 1-based
147
+ monaco.editor.ScrollType.Immediate);
148
+ });
149
+ this.editor.focus();
150
+ }
151
+ updateHeading() {
152
+ this.peekView.setTitle(this.computePrimaryHeading(), this.computeSecondaryHeading());
153
+ }
154
+ computePrimaryHeading() {
155
+ return this.uri.path.base;
156
+ }
157
+ computeSecondaryHeading() {
158
+ const index = this.index + 1;
159
+ const length = this.changes.length;
160
+ return length > 1 ? core_1.nls.localizeByDefault('{0} of {1} changes', index, length) :
161
+ core_1.nls.localizeByDefault('{0} of {1} change', index, length);
162
+ }
163
+ computeHeightInLines() {
164
+ const editor = this.editor.getControl();
165
+ const lineHeight = editor.getOption(monaco.editor.EditorOption.lineHeight);
166
+ const editorHeight = editor.getLayoutInfo().height;
167
+ const editorHeightInLines = Math.floor(editorHeight / lineHeight);
168
+ const { previousRange, currentRange } = this.changes[this.index];
169
+ const changeHeightInLines = diff_computer_1.LineRange.getLineCount(currentRange) + diff_computer_1.LineRange.getLineCount(previousRange);
170
+ return Math.min(changeHeightInLines + /* padding */ 8, Math.floor(editorHeightInLines / 3));
171
+ }
172
+ async checkCreated() {
173
+ return this.diffEditorPromise;
174
+ }
175
+ };
176
+ exports.DirtyDiffWidget = DirtyDiffWidget;
177
+ tslib_1.__decorate([
178
+ (0, inversify_1.postConstruct)(),
179
+ tslib_1.__metadata("design:type", Function),
180
+ tslib_1.__metadata("design:paramtypes", []),
181
+ tslib_1.__metadata("design:returntype", void 0)
182
+ ], DirtyDiffWidget.prototype, "create", null);
183
+ exports.DirtyDiffWidget = DirtyDiffWidget = tslib_1.__decorate([
184
+ (0, inversify_1.injectable)(),
185
+ tslib_1.__param(0, (0, inversify_1.inject)(exports.DirtyDiffWidgetProps)),
186
+ tslib_1.__param(1, (0, inversify_1.inject)(monaco_editor_provider_1.MonacoEditorProvider)),
187
+ tslib_1.__param(2, (0, inversify_1.inject)(context_key_service_1.ContextKeyService)),
188
+ tslib_1.__param(3, (0, inversify_1.inject)(core_1.MenuModelRegistry)),
189
+ tslib_1.__metadata("design:paramtypes", [Object, monaco_editor_provider_1.MonacoEditorProvider, Object, core_1.MenuModelRegistry])
190
+ ], DirtyDiffWidget);
191
+ function cycle(index, offset, length) {
192
+ return (index + offset + length) % length;
193
+ }
194
+ // adapted from https://github.com/microsoft/vscode/blob/823d54f86ee13eb357bc6e8e562e89d793f3c43b/extensions/git/src/staging.ts
195
+ function applyChanges(changes, original, modified) {
196
+ const result = [];
197
+ let currentLine = 1;
198
+ for (const change of changes) {
199
+ const { previousRange, currentRange } = change;
200
+ const isInsertion = diff_computer_1.LineRange.isEmpty(previousRange);
201
+ const isDeletion = diff_computer_1.LineRange.isEmpty(currentRange);
202
+ const convert = (range) => {
203
+ let startLineNumber;
204
+ let endLineNumber;
205
+ if (!diff_computer_1.LineRange.isEmpty(range)) {
206
+ startLineNumber = range.start + 1;
207
+ endLineNumber = range.end;
208
+ }
209
+ else {
210
+ startLineNumber = range.start;
211
+ endLineNumber = 0;
212
+ }
213
+ return [startLineNumber, endLineNumber];
214
+ };
215
+ const [originalStartLineNumber, originalEndLineNumber] = convert(previousRange);
216
+ const [modifiedStartLineNumber, modifiedEndLineNumber] = convert(currentRange);
217
+ let toLine = isInsertion ? originalStartLineNumber + 1 : originalStartLineNumber;
218
+ let toCharacter = 1;
219
+ // if this is a deletion at the very end of the document,
220
+ // we need to account for a newline at the end of the last line,
221
+ // which may have been deleted
222
+ if (isDeletion && originalEndLineNumber === original.getLineCount()) {
223
+ toLine--;
224
+ toCharacter = original.getLineMaxColumn(toLine);
225
+ }
226
+ result.push(original.getValueInRange(new monaco.Range(currentLine, 1, toLine, toCharacter)));
227
+ if (!isDeletion) {
228
+ let fromLine = modifiedStartLineNumber;
229
+ let fromCharacter = 1;
230
+ // if this is an insertion at the very end of the document,
231
+ // we must start the next range after the last character of the previous line,
232
+ // in order to take the correct eol
233
+ if (isInsertion && originalStartLineNumber === original.getLineCount()) {
234
+ fromLine--;
235
+ fromCharacter = modified.getLineMaxColumn(fromLine);
236
+ }
237
+ result.push(modified.getValueInRange(new monaco.Range(fromLine, fromCharacter, modifiedEndLineNumber + 1, 1)));
238
+ }
239
+ currentLine = isInsertion ? originalStartLineNumber + 1 : originalEndLineNumber + 1;
240
+ }
241
+ result.push(original.getValueInRange(new monaco.Range(currentLine, 1, original.getLineCount() + 1, 1)));
242
+ return result.join('');
243
+ }
244
+ class DirtyDiffPeekView extends monaco_editor_peek_view_widget_1.MonacoEditorPeekViewWidget {
245
+ constructor(widget) {
246
+ super(widget.editor, { isResizeable: true, showArrow: true, frameWidth: 1, keepEditorSelection: true, className: 'dirty-diff' });
247
+ this.widget = widget;
248
+ }
249
+ async create() {
250
+ try {
251
+ this.bodyElement = document.createElement('div');
252
+ this.bodyElement.classList.add('body');
253
+ const diffEditor = await this.widget.editorProvider.createEmbeddedDiffEditor(this.editor, this.bodyElement, this.widget.previousRevisionUri);
254
+ this.diffEditor = diffEditor;
255
+ this.toDispose.push(diffEditor);
256
+ super.create();
257
+ return new Promise(resolve => {
258
+ // setTimeout is needed here because the non-side-by-side diff editor might still not have created the view zones;
259
+ // otherwise, the first change shown might not be properly revealed in the diff editor.
260
+ // see also https://github.com/microsoft/vscode/blob/b30900b56c4b3ca6c65d7ab92032651f4cb23f15/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts#L248
261
+ const disposable = diffEditor.diffEditor.onDidUpdateDiff(() => setTimeout(() => {
262
+ resolve(diffEditor);
263
+ disposable.dispose();
264
+ }));
265
+ });
266
+ }
267
+ catch (e) {
268
+ this.dispose();
269
+ throw e;
270
+ }
271
+ }
272
+ show(rangeOrPos, heightInLines) {
273
+ const borderColor = this.getBorderColor();
274
+ this.style({
275
+ arrowColor: borderColor,
276
+ frameColor: borderColor,
277
+ headerBackgroundColor: monaco_editor_peek_view_widget_1.peekViewTitleBackground,
278
+ primaryHeadingColor: monaco_editor_peek_view_widget_1.peekViewTitleForeground,
279
+ secondaryHeadingColor: monaco_editor_peek_view_widget_1.peekViewTitleInfoForeground
280
+ });
281
+ this.updateActions();
282
+ super.show(rangeOrPos, heightInLines);
283
+ }
284
+ getBorderColor() {
285
+ const { currentChange } = this.widget;
286
+ if (!currentChange) {
287
+ return monaco_editor_peek_view_widget_1.peekViewBorder;
288
+ }
289
+ if (diff_computer_1.Change.isAddition(currentChange)) {
290
+ return scm_colors_1.ScmColors.editorGutterAddedBackground;
291
+ }
292
+ else if (diff_computer_1.Change.isRemoval(currentChange)) {
293
+ return scm_colors_1.ScmColors.editorGutterDeletedBackground;
294
+ }
295
+ else {
296
+ return scm_colors_1.ScmColors.editorGutterModifiedBackground;
297
+ }
298
+ }
299
+ updateActions() {
300
+ this.clearActions();
301
+ const { contextKeyService, menuModelRegistry } = this.widget;
302
+ contextKeyService.with({ originalResourceScheme: this.widget.previousRevisionUri.scheme }, () => {
303
+ for (const menuPath of [exports.SCM_CHANGE_TITLE_MENU, exports.PLUGIN_SCM_CHANGE_TITLE_MENU]) {
304
+ const menu = menuModelRegistry.getMenu(menuPath);
305
+ if (menu) {
306
+ for (const item of menu.children) {
307
+ if (core_1.CommandMenu.is(item)) {
308
+ const { id, label, icon } = item;
309
+ const itemPath = [...menuPath, id];
310
+ if (icon && item.isVisible(itemPath, contextKeyService, undefined, this.widget)) {
311
+ // Close editor on successful contributed action.
312
+ // https://github.com/microsoft/vscode/blob/1.99.3/src/vs/workbench/contrib/scm/browser/quickDiffWidget.ts#L357-L361
313
+ this.addAction(id, label, icon, item.isEnabled(itemPath, this.widget), () => {
314
+ item.run(itemPath, this.widget).then(() => this.dispose());
315
+ });
316
+ }
317
+ }
318
+ }
319
+ }
320
+ }
321
+ });
322
+ this.addAction('dirtydiff.next', core_1.nls.localizeByDefault('Show Next Change'), (0, browser_1.codicon)('arrow-down'), true, () => this.widget.showNextChange());
323
+ this.addAction('dirtydiff.previous', core_1.nls.localizeByDefault('Show Previous Change'), (0, browser_1.codicon)('arrow-up'), true, () => this.widget.showPreviousChange());
324
+ this.addAction('peekview.close', core_1.nls.localizeByDefault('Close'), (0, browser_1.codicon)('close'), true, () => this.dispose());
325
+ }
326
+ fillContainer(container) {
327
+ this.setCssClass('peekview-widget');
328
+ this.headElement = document.createElement('div');
329
+ this.headElement.classList.add('head');
330
+ container.appendChild(this.headElement);
331
+ container.appendChild(this.bodyElement);
332
+ this.fillHead(this.headElement);
333
+ }
334
+ fillHead(container) {
335
+ super.fillHead(container, true);
336
+ }
337
+ doLayoutBody(height, width) {
338
+ super.doLayoutBody(height, width);
339
+ this.layout(height, width);
340
+ this.height = height;
341
+ }
342
+ onWidth(width) {
343
+ super.onWidth(width);
344
+ const { height } = this;
345
+ if (height !== undefined) {
346
+ this.layout(height, width);
347
+ }
348
+ }
349
+ layout(height, width) {
350
+ var _a;
351
+ (_a = this.diffEditor) === null || _a === void 0 ? void 0 : _a.diffEditor.layout({ height, width });
352
+ }
353
+ doRevealRange(range) {
354
+ this.editor.revealPosition(vscode_languageserver_protocol_1.Position.create(range.end.line, 0), { vertical: 'centerIfOutsideViewport' });
355
+ }
356
+ }
357
+ //# sourceMappingURL=dirty-diff-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-diff-widget.js","sourceRoot":"","sources":["../../../src/browser/dirty-diff/dirty-diff-widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { Command, CommandContribution, CommandRegistry, MenuContribution, MenuModelRegistry } from '@theia/core';
2
+ import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
3
+ import { ApplicationShell, FrontendApplicationContribution, KeybindingContribution, KeybindingRegistry, LabelProvider } from '@theia/core/lib/browser';
4
+ import { ColorContribution } from '@theia/core/lib/browser/color-application-contribution';
5
+ import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
6
+ import { MergeEditor, MergeEditorSettings } from './merge-editor';
7
+ export declare namespace MergeEditorCommands {
8
+ const MERGE_EDITOR_CATEGORY = "Merge Editor";
9
+ const ACCEPT_MERGE: Command;
10
+ const GO_TO_NEXT_UNHANDLED_CONFLICT: Command;
11
+ const GO_TO_PREVIOUS_UNHANDLED_CONFLICT: Command;
12
+ const SET_MIXED_LAYOUT: Command;
13
+ const SET_COLUMN_LAYOUT: Command;
14
+ const SHOW_BASE: Command;
15
+ const SHOW_BASE_TOP: Command;
16
+ const SHOW_BASE_CENTER: Command;
17
+ }
18
+ export declare class MergeEditorContribution implements FrontendApplicationContribution, CommandContribution, MenuContribution, TabBarToolbarContribution, KeybindingContribution, ColorContribution {
19
+ protected readonly settings: MergeEditorSettings;
20
+ protected readonly shell: ApplicationShell;
21
+ protected readonly labelProvider: LabelProvider;
22
+ onStart(): void;
23
+ onStop(): void;
24
+ protected getMergeEditor(widget?: import("@lumino/widgets/types/widget").Widget | undefined): MergeEditor | undefined;
25
+ registerCommands(commands: CommandRegistry): void;
26
+ registerMenus(menus: MenuModelRegistry): void;
27
+ registerToolbarItems(registry: TabBarToolbarRegistry): void;
28
+ registerKeybindings(keybindings: KeybindingRegistry): void;
29
+ /**
30
+ * It should be aligned with https://code.visualstudio.com/api/references/theme-color#merge-conflicts-colors
31
+ */
32
+ registerColors(colors: ColorRegistry): void;
33
+ }
34
+ //# sourceMappingURL=merge-editor-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-editor-contribution.d.ts","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAO,MAAM,aAAa,CAAC;AACtH,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EACH,gBAAgB,EAGhB,+BAA+B,EAC/B,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAElE,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,qBAAqB,iBAAiB,CAAC;IAC7C,MAAM,YAAY,SAIvB,CAAC;IACI,MAAM,6BAA6B,SAIxC,CAAC;IACI,MAAM,iCAAiC,SAI5C,CAAC;IACI,MAAM,gBAAgB,SAI3B,CAAC;IACI,MAAM,iBAAiB,SAI5B,CAAC;IACI,MAAM,SAAS,SAIpB,CAAC;IACI,MAAM,aAAa,SAIxB,CAAC;IACI,MAAM,gBAAgB,SAI3B,CAAC;CACN;AAED,qBACa,uBAAwB,YAAW,+BAA+B,EAC3E,mBAAmB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,iBAAiB;IAG3G,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEhD,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,SAAS,CAAC,cAAc,CAAC,MAAM,4DAA2B,GAAG,WAAW,GAAG,SAAS;IAIpF,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAmHjD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAG7C,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IA+C3D,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;IAG1D;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAuE9C"}