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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/lib/browser/decorations/scm-decorations-service.d.ts +21 -0
  2. package/lib/browser/decorations/scm-decorations-service.d.ts.map +1 -0
  3. package/lib/browser/decorations/scm-decorations-service.js +134 -0
  4. package/lib/browser/decorations/scm-decorations-service.js.map +1 -0
  5. package/lib/browser/decorations/scm-navigator-decorator.d.ts +26 -0
  6. package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +1 -0
  7. package/lib/browser/decorations/scm-navigator-decorator.js +122 -0
  8. package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -0
  9. package/lib/browser/dirty-diff/content-lines.d.ts +15 -0
  10. package/lib/browser/dirty-diff/content-lines.d.ts.map +1 -0
  11. package/lib/browser/dirty-diff/content-lines.js +114 -0
  12. package/lib/browser/dirty-diff/content-lines.js.map +1 -0
  13. package/lib/browser/dirty-diff/content-lines.spec.d.ts +2 -0
  14. package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +1 -0
  15. package/lib/browser/dirty-diff/content-lines.spec.js +40 -0
  16. package/lib/browser/dirty-diff/content-lines.spec.js.map +1 -0
  17. package/lib/browser/dirty-diff/diff-computer.d.ts +39 -0
  18. package/lib/browser/dirty-diff/diff-computer.d.ts.map +1 -0
  19. package/lib/browser/dirty-diff/diff-computer.js +167 -0
  20. package/lib/browser/dirty-diff/diff-computer.js.map +1 -0
  21. package/lib/browser/dirty-diff/diff-computer.spec.d.ts +2 -0
  22. package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +1 -0
  23. package/lib/browser/dirty-diff/diff-computer.spec.js +384 -0
  24. package/lib/browser/dirty-diff/diff-computer.spec.js.map +1 -0
  25. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +17 -0
  26. package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +1 -0
  27. package/lib/browser/dirty-diff/dirty-diff-decorator.js +101 -0
  28. package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +1 -0
  29. package/lib/browser/dirty-diff/dirty-diff-module.d.ts +4 -0
  30. package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +1 -0
  31. package/lib/browser/dirty-diff/dirty-diff-module.js +34 -0
  32. package/lib/browser/dirty-diff/dirty-diff-module.js.map +1 -0
  33. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +49 -0
  34. package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +1 -0
  35. package/lib/browser/dirty-diff/dirty-diff-navigator.js +295 -0
  36. package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +1 -0
  37. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +50 -0
  38. package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +1 -0
  39. package/lib/browser/dirty-diff/dirty-diff-widget.js +357 -0
  40. package/lib/browser/dirty-diff/dirty-diff-widget.js.map +1 -0
  41. package/lib/browser/merge-editor/merge-editor-contribution.d.ts +34 -0
  42. package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +1 -0
  43. package/lib/browser/merge-editor/merge-editor-contribution.js +335 -0
  44. package/lib/browser/merge-editor/merge-editor-contribution.js.map +1 -0
  45. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +31 -0
  46. package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +1 -0
  47. package/lib/browser/merge-editor/merge-editor-dev-contribution.js +151 -0
  48. package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +1 -0
  49. package/lib/browser/merge-editor/merge-editor-module.d.ts +24 -0
  50. package/lib/browser/merge-editor/merge-editor-module.d.ts.map +1 -0
  51. package/lib/browser/merge-editor/merge-editor-module.js +109 -0
  52. package/lib/browser/merge-editor/merge-editor-module.js.map +1 -0
  53. package/lib/browser/merge-editor/merge-editor.d.ts +122 -0
  54. package/lib/browser/merge-editor/merge-editor.d.ts.map +1 -0
  55. package/lib/browser/merge-editor/merge-editor.js +560 -0
  56. package/lib/browser/merge-editor/merge-editor.js.map +1 -0
  57. package/lib/browser/merge-editor/model/line-range.d.ts +37 -0
  58. package/lib/browser/merge-editor/model/line-range.d.ts.map +1 -0
  59. package/lib/browser/merge-editor/model/line-range.js +111 -0
  60. package/lib/browser/merge-editor/model/line-range.js.map +1 -0
  61. package/lib/browser/merge-editor/model/live-diff.d.ts +26 -0
  62. package/lib/browser/merge-editor/model/live-diff.d.ts.map +1 -0
  63. package/lib/browser/merge-editor/model/live-diff.js +85 -0
  64. package/lib/browser/merge-editor/model/live-diff.js.map +1 -0
  65. package/lib/browser/merge-editor/model/merge-editor-model.d.ts +116 -0
  66. package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +1 -0
  67. package/lib/browser/merge-editor/model/merge-editor-model.js +507 -0
  68. package/lib/browser/merge-editor/model/merge-editor-model.js.map +1 -0
  69. package/lib/browser/merge-editor/model/merge-range.d.ts +50 -0
  70. package/lib/browser/merge-editor/model/merge-range.d.ts.map +1 -0
  71. package/lib/browser/merge-editor/model/merge-range.js +215 -0
  72. package/lib/browser/merge-editor/model/merge-range.js.map +1 -0
  73. package/lib/browser/merge-editor/model/range-editing.d.ts +21 -0
  74. package/lib/browser/merge-editor/model/range-editing.d.ts.map +1 -0
  75. package/lib/browser/merge-editor/model/range-editing.js +68 -0
  76. package/lib/browser/merge-editor/model/range-editing.js.map +1 -0
  77. package/lib/browser/merge-editor/model/range-mapping.d.ts +106 -0
  78. package/lib/browser/merge-editor/model/range-mapping.d.ts.map +1 -0
  79. package/lib/browser/merge-editor/model/range-mapping.js +252 -0
  80. package/lib/browser/merge-editor/model/range-mapping.js.map +1 -0
  81. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +2 -0
  82. package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +1 -0
  83. package/lib/browser/merge-editor/model/range-mapping.spec.js +48 -0
  84. package/lib/browser/merge-editor/model/range-mapping.spec.js.map +1 -0
  85. package/lib/browser/merge-editor/model/range-utils.d.ts +25 -0
  86. package/lib/browser/merge-editor/model/range-utils.d.ts.map +1 -0
  87. package/lib/browser/merge-editor/model/range-utils.js +118 -0
  88. package/lib/browser/merge-editor/model/range-utils.js.map +1 -0
  89. package/lib/browser/merge-editor/view/diff-spacers.d.ts +50 -0
  90. package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +1 -0
  91. package/lib/browser/merge-editor/view/diff-spacers.js +133 -0
  92. package/lib/browser/merge-editor/view/diff-spacers.js.map +1 -0
  93. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +6 -0
  94. package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +1 -0
  95. package/lib/browser/merge-editor/view/merge-editor-panes/index.js +24 -0
  96. package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +1 -0
  97. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +12 -0
  98. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +1 -0
  99. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +65 -0
  100. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +1 -0
  101. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +30 -0
  102. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +1 -0
  103. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +102 -0
  104. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -0
  105. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +49 -0
  106. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +1 -0
  107. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +214 -0
  108. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +1 -0
  109. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +16 -0
  110. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +1 -0
  111. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +107 -0
  112. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +1 -0
  113. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +27 -0
  114. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +1 -0
  115. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +135 -0
  116. package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +1 -0
  117. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +20 -0
  118. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +1 -0
  119. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +218 -0
  120. package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +1 -0
  121. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +57 -0
  122. package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +1 -0
  123. package/lib/browser/merge-editor/view/merge-editor-view-zones.js +218 -0
  124. package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +1 -0
  125. package/lib/browser/merge-editor/view/merge-range-actions.d.ts +23 -0
  126. package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +1 -0
  127. package/lib/browser/merge-editor/view/merge-range-actions.js +142 -0
  128. package/lib/browser/merge-editor/view/merge-range-actions.js.map +1 -0
  129. package/lib/browser/scm-amend-component.d.ts +124 -0
  130. package/lib/browser/scm-amend-component.d.ts.map +1 -0
  131. package/lib/browser/scm-amend-component.js +464 -0
  132. package/lib/browser/scm-amend-component.js.map +1 -0
  133. package/lib/browser/scm-amend-widget.d.ts +21 -0
  134. package/lib/browser/scm-amend-widget.d.ts.map +1 -0
  135. package/lib/browser/scm-amend-widget.js +91 -0
  136. package/lib/browser/scm-amend-widget.js.map +1 -0
  137. package/lib/browser/scm-avatar-service.d.ts +4 -0
  138. package/lib/browser/scm-avatar-service.d.ts.map +1 -0
  139. package/lib/browser/scm-avatar-service.js +32 -0
  140. package/lib/browser/scm-avatar-service.js.map +1 -0
  141. package/lib/browser/scm-colors.d.ts +8 -0
  142. package/lib/browser/scm-colors.d.ts.map +1 -0
  143. package/lib/browser/scm-colors.js +27 -0
  144. package/lib/browser/scm-colors.js.map +1 -0
  145. package/lib/browser/scm-commit-widget.d.ts +53 -0
  146. package/lib/browser/scm-commit-widget.d.ts.map +1 -0
  147. package/lib/browser/scm-commit-widget.js +188 -0
  148. package/lib/browser/scm-commit-widget.js.map +1 -0
  149. package/lib/browser/scm-context-key-service.d.ts +13 -0
  150. package/lib/browser/scm-context-key-service.d.ts.map +1 -0
  151. package/lib/browser/scm-context-key-service.js +55 -0
  152. package/lib/browser/scm-context-key-service.js.map +1 -0
  153. package/lib/browser/scm-contribution.d.ts +98 -0
  154. package/lib/browser/scm-contribution.d.ts.map +1 -0
  155. package/lib/browser/scm-contribution.js +480 -0
  156. package/lib/browser/scm-contribution.js.map +1 -0
  157. package/lib/browser/scm-frontend-module.d.ts +7 -0
  158. package/lib/browser/scm-frontend-module.d.ts.map +1 -0
  159. package/lib/browser/scm-frontend-module.js +129 -0
  160. package/lib/browser/scm-frontend-module.js.map +1 -0
  161. package/lib/browser/scm-groups-tree-model.d.ts +15 -0
  162. package/lib/browser/scm-groups-tree-model.d.ts.map +1 -0
  163. package/lib/browser/scm-groups-tree-model.js +90 -0
  164. package/lib/browser/scm-groups-tree-model.js.map +1 -0
  165. package/lib/browser/scm-input.d.ts +54 -0
  166. package/lib/browser/scm-input.d.ts.map +1 -0
  167. package/lib/browser/scm-input.js +128 -0
  168. package/lib/browser/scm-input.js.map +1 -0
  169. package/lib/browser/scm-layout-migrations.d.ts +10 -0
  170. package/lib/browser/scm-layout-migrations.d.ts.map +1 -0
  171. package/lib/browser/scm-layout-migrations.js +75 -0
  172. package/lib/browser/scm-layout-migrations.js.map +1 -0
  173. package/lib/browser/scm-no-repository-widget.d.ts +9 -0
  174. package/lib/browser/scm-no-repository-widget.d.ts.map +1 -0
  175. package/lib/browser/scm-no-repository-widget.js +42 -0
  176. package/lib/browser/scm-no-repository-widget.js.map +1 -0
  177. package/lib/browser/scm-provider.d.ts +60 -0
  178. package/lib/browser/scm-provider.d.ts.map +1 -0
  179. package/lib/browser/scm-provider.js +20 -0
  180. package/lib/browser/scm-provider.js.map +1 -0
  181. package/lib/browser/scm-quick-open-service.d.ts +12 -0
  182. package/lib/browser/scm-quick-open-service.d.ts.map +1 -0
  183. package/lib/browser/scm-quick-open-service.js +66 -0
  184. package/lib/browser/scm-quick-open-service.js.map +1 -0
  185. package/lib/browser/scm-repository.d.ts +18 -0
  186. package/lib/browser/scm-repository.d.ts.map +1 -0
  187. package/lib/browser/scm-repository.js +42 -0
  188. package/lib/browser/scm-repository.js.map +1 -0
  189. package/lib/browser/scm-service.d.ts +27 -0
  190. package/lib/browser/scm-service.d.ts.map +1 -0
  191. package/lib/browser/scm-service.js +101 -0
  192. package/lib/browser/scm-service.js.map +1 -0
  193. package/lib/browser/scm-tree-label-provider.d.ts +8 -0
  194. package/lib/browser/scm-tree-label-provider.d.ts.map +1 -0
  195. package/lib/browser/scm-tree-label-provider.js +50 -0
  196. package/lib/browser/scm-tree-label-provider.js.map +1 -0
  197. package/lib/browser/scm-tree-model.d.ts +76 -0
  198. package/lib/browser/scm-tree-model.d.ts.map +1 -0
  199. package/lib/browser/scm-tree-model.js +349 -0
  200. package/lib/browser/scm-tree-model.js.map +1 -0
  201. package/lib/browser/scm-tree-widget.d.ts +206 -0
  202. package/lib/browser/scm-tree-widget.d.ts.map +1 -0
  203. package/lib/browser/scm-tree-widget.js +677 -0
  204. package/lib/browser/scm-tree-widget.js.map +1 -0
  205. package/lib/browser/scm-widget.d.ts +42 -0
  206. package/lib/browser/scm-widget.d.ts.map +1 -0
  207. package/lib/browser/scm-widget.js +220 -0
  208. package/lib/browser/scm-widget.js.map +1 -0
  209. package/lib/common/scm-preferences.d.ts +12 -0
  210. package/lib/common/scm-preferences.d.ts.map +1 -0
  211. package/lib/common/scm-preferences.js +51 -0
  212. package/lib/common/scm-preferences.js.map +1 -0
  213. package/lib/node/scm-backend-module.d.ts +4 -0
  214. package/lib/node/scm-backend-module.d.ts.map +1 -0
  215. package/lib/node/scm-backend-module.js +23 -0
  216. package/lib/node/scm-backend-module.js.map +1 -0
  217. package/package.json +6 -6
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 TypeFox 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.LineRange = exports.Change = exports.DiffComputer = void 0;
19
+ const jsdiff = require("diff");
20
+ const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
21
+ class DiffComputer {
22
+ computeDiff(previous, current) {
23
+ const diffResult = diffArrays(previous, current);
24
+ return diffResult;
25
+ }
26
+ computeDirtyDiff(previous, current) {
27
+ const changes = [];
28
+ const diffResult = this.computeDiff(previous, current);
29
+ let currentRevisionLine = -1;
30
+ let previousRevisionLine = -1;
31
+ for (let i = 0; i < diffResult.length; i++) {
32
+ const change = diffResult[i];
33
+ const next = diffResult[i + 1];
34
+ if (change.added) {
35
+ // case: addition
36
+ changes.push({ previousRange: LineRange.createEmptyLineRange(previousRevisionLine + 1), currentRange: toLineRange(change) });
37
+ currentRevisionLine += change.count;
38
+ }
39
+ else if (change.removed && next && next.added) {
40
+ const isFirstChange = i === 0;
41
+ const isLastChange = i === diffResult.length - 2;
42
+ const isNextEmptyLine = next.value.length > 0 && current[next.value[0]].length === 0;
43
+ const isPrevEmptyLine = change.value.length > 0 && previous[change.value[0]].length === 0;
44
+ if (isFirstChange && isNextEmptyLine) {
45
+ // special case: removing at the beginning
46
+ changes.push({ previousRange: toLineRange(change), currentRange: LineRange.createEmptyLineRange(0) });
47
+ previousRevisionLine += change.count;
48
+ }
49
+ else if (isFirstChange && isPrevEmptyLine) {
50
+ // special case: adding at the beginning
51
+ changes.push({ previousRange: LineRange.createEmptyLineRange(0), currentRange: toLineRange(next) });
52
+ currentRevisionLine += next.count;
53
+ }
54
+ else if (isLastChange && isNextEmptyLine) {
55
+ changes.push({ previousRange: toLineRange(change), currentRange: LineRange.createEmptyLineRange(currentRevisionLine + 2) });
56
+ previousRevisionLine += change.count;
57
+ }
58
+ else {
59
+ // default case is a modification
60
+ changes.push({ previousRange: toLineRange(change), currentRange: toLineRange(next) });
61
+ currentRevisionLine += next.count;
62
+ previousRevisionLine += change.count;
63
+ }
64
+ i++; // consume next eagerly
65
+ }
66
+ else if (change.removed && !(next && next.added)) {
67
+ // case: removal
68
+ changes.push({ previousRange: toLineRange(change), currentRange: LineRange.createEmptyLineRange(currentRevisionLine + 1) });
69
+ previousRevisionLine += change.count;
70
+ }
71
+ else {
72
+ // case: unchanged region
73
+ currentRevisionLine += change.count;
74
+ previousRevisionLine += change.count;
75
+ }
76
+ }
77
+ return { changes };
78
+ }
79
+ }
80
+ exports.DiffComputer = DiffComputer;
81
+ class ArrayDiff extends jsdiff.Diff {
82
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
+ tokenize(value) {
84
+ return value;
85
+ }
86
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
+ join(value) {
88
+ return value;
89
+ }
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
+ removeEmpty(value) {
92
+ return value;
93
+ }
94
+ }
95
+ const arrayDiff = new ArrayDiff();
96
+ /**
97
+ * Computes diff without copying data.
98
+ */
99
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
+ function diffArrays(oldArr, newArr) {
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ return arrayDiff.diff(oldArr, newArr);
103
+ }
104
+ function toLineRange({ value }) {
105
+ const [start, end] = value;
106
+ return LineRange.create(start, end + 1);
107
+ }
108
+ var Change;
109
+ (function (Change) {
110
+ function isAddition(change) {
111
+ return LineRange.isEmpty(change.previousRange);
112
+ }
113
+ Change.isAddition = isAddition;
114
+ function isRemoval(change) {
115
+ return LineRange.isEmpty(change.currentRange);
116
+ }
117
+ Change.isRemoval = isRemoval;
118
+ function isModification(change) {
119
+ return !isAddition(change) && !isRemoval(change);
120
+ }
121
+ Change.isModification = isModification;
122
+ })(Change || (exports.Change = Change = {}));
123
+ var LineRange;
124
+ (function (LineRange) {
125
+ function create(start, end) {
126
+ if (start < 0 || end < 0 || start > end) {
127
+ throw new Error(`Invalid line range: { start: ${start}, end: ${end} }`);
128
+ }
129
+ return { start, end };
130
+ }
131
+ LineRange.create = create;
132
+ function createSingleLineRange(line) {
133
+ return create(line, line + 1);
134
+ }
135
+ LineRange.createSingleLineRange = createSingleLineRange;
136
+ function createEmptyLineRange(line) {
137
+ return create(line, line);
138
+ }
139
+ LineRange.createEmptyLineRange = createEmptyLineRange;
140
+ function isEmpty(range) {
141
+ return range.start === range.end;
142
+ }
143
+ LineRange.isEmpty = isEmpty;
144
+ function getStartPosition(range) {
145
+ if (isEmpty(range)) {
146
+ return getEndPosition(range);
147
+ }
148
+ return vscode_languageserver_protocol_1.Position.create(range.start, 0);
149
+ }
150
+ LineRange.getStartPosition = getStartPosition;
151
+ function getEndPosition(range) {
152
+ if (range.end < 1) {
153
+ return vscode_languageserver_protocol_1.Position.create(0, 0);
154
+ }
155
+ return vscode_languageserver_protocol_1.Position.create(range.end - 1, vscode_languageserver_protocol_1.uinteger.MAX_VALUE);
156
+ }
157
+ LineRange.getEndPosition = getEndPosition;
158
+ function toRange(range) {
159
+ return vscode_languageserver_protocol_1.Range.create(getStartPosition(range), getEndPosition(range));
160
+ }
161
+ LineRange.toRange = toRange;
162
+ function getLineCount(range) {
163
+ return range.end - range.start;
164
+ }
165
+ LineRange.getLineCount = getLineCount;
166
+ })(LineRange || (exports.LineRange = LineRange = {}));
167
+ //# sourceMappingURL=diff-computer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-computer.js","sourceRoot":"","sources":["../../../src/browser/dirty-diff/diff-computer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diff-computer.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-computer.spec.d.ts","sourceRoot":"","sources":["../../../src/browser/dirty-diff/diff-computer.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai = require("chai");
19
+ const chai_1 = require("chai");
20
+ chai.use(require('chai-string'));
21
+ const diff_computer_1 = require("./diff-computer");
22
+ const content_lines_1 = require("./content-lines");
23
+ let diffComputer;
24
+ before(() => {
25
+ diffComputer = new diff_computer_1.DiffComputer();
26
+ });
27
+ describe('dirty-diff-computer', () => {
28
+ it('remove single line', () => {
29
+ const dirtyDiff = computeDirtyDiff([
30
+ 'FIRST',
31
+ 'SECOND TO-BE-REMOVED',
32
+ 'THIRD'
33
+ ], [
34
+ 'FIRST',
35
+ 'THIRD'
36
+ ]);
37
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
38
+ changes: [
39
+ {
40
+ previousRange: { start: 1, end: 2 },
41
+ currentRange: { start: 1, end: 1 },
42
+ },
43
+ ],
44
+ });
45
+ });
46
+ [1, 2, 3, 20].forEach(lines => {
47
+ it(`remove ${formatLines(lines)} at the end`, () => {
48
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(2)
49
+ .concat(sequenceOfN(lines, () => 'TO-BE-REMOVED')), sequenceOfN(2));
50
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
51
+ changes: [
52
+ {
53
+ previousRange: { start: 2, end: 2 + lines },
54
+ currentRange: { start: 2, end: 2 },
55
+ },
56
+ ],
57
+ });
58
+ });
59
+ });
60
+ it('remove all lines', () => {
61
+ const numberOfLines = 10;
62
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(numberOfLines, () => 'TO-BE-REMOVED'), ['']);
63
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
64
+ changes: [
65
+ {
66
+ previousRange: { start: 0, end: numberOfLines },
67
+ currentRange: { start: 0, end: 0 },
68
+ },
69
+ ],
70
+ });
71
+ });
72
+ [1, 2, 3, 20].forEach(lines => {
73
+ it(`remove ${formatLines(lines)} at the beginning`, () => {
74
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(lines, () => 'TO-BE-REMOVED')
75
+ .concat(sequenceOfN(2)), sequenceOfN(2));
76
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
77
+ changes: [
78
+ {
79
+ previousRange: { start: 0, end: lines },
80
+ currentRange: { start: 0, end: 0 },
81
+ },
82
+ ],
83
+ });
84
+ });
85
+ });
86
+ [1, 2, 3, 20].forEach(lines => {
87
+ it(`add ${formatLines(lines)}`, () => {
88
+ const previous = sequenceOfN(3);
89
+ const modified = insertIntoArray(previous, 2, ...sequenceOfN(lines, () => 'ADDED LINE'));
90
+ const dirtyDiff = computeDirtyDiff(previous, modified);
91
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
92
+ changes: [
93
+ {
94
+ previousRange: { start: 2, end: 2 },
95
+ currentRange: { start: 2, end: 2 + lines },
96
+ },
97
+ ],
98
+ });
99
+ });
100
+ });
101
+ [1, 2, 3, 20].forEach(lines => {
102
+ it(`add ${formatLines(lines)} at the beginning`, () => {
103
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(2), sequenceOfN(lines, () => 'ADDED LINE')
104
+ .concat(sequenceOfN(2)));
105
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
106
+ changes: [
107
+ {
108
+ previousRange: { start: 0, end: 0 },
109
+ currentRange: { start: 0, end: lines },
110
+ },
111
+ ],
112
+ });
113
+ });
114
+ });
115
+ it('add lines to empty file', () => {
116
+ const numberOfLines = 3;
117
+ const dirtyDiff = computeDirtyDiff([''], sequenceOfN(numberOfLines, () => 'ADDED LINE'));
118
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
119
+ changes: [
120
+ {
121
+ previousRange: { start: 0, end: 0 },
122
+ currentRange: { start: 0, end: numberOfLines },
123
+ },
124
+ ],
125
+ });
126
+ });
127
+ it('add empty lines', () => {
128
+ const dirtyDiff = computeDirtyDiff([
129
+ '1',
130
+ '2'
131
+ ], [
132
+ '1',
133
+ '',
134
+ '',
135
+ '2'
136
+ ]);
137
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
138
+ changes: [
139
+ {
140
+ previousRange: { start: 1, end: 1 },
141
+ currentRange: { start: 1, end: 3 },
142
+ },
143
+ ],
144
+ });
145
+ });
146
+ it('add empty line after single line', () => {
147
+ const dirtyDiff = computeDirtyDiff([
148
+ '1'
149
+ ], [
150
+ '1',
151
+ ''
152
+ ]);
153
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
154
+ changes: [
155
+ {
156
+ previousRange: { start: 1, end: 1 },
157
+ currentRange: { start: 1, end: 2 },
158
+ },
159
+ ],
160
+ });
161
+ });
162
+ [1, 2, 3, 20].forEach(lines => {
163
+ it(`add ${formatLines(lines)} (empty) at the end`, () => {
164
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(2), sequenceOfN(2)
165
+ .concat(new Array(lines).map(() => '')));
166
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
167
+ changes: [
168
+ {
169
+ previousRange: { start: 2, end: 2 },
170
+ currentRange: { start: 2, end: 2 + lines },
171
+ },
172
+ ],
173
+ });
174
+ });
175
+ });
176
+ it('add empty and non-empty lines', () => {
177
+ const dirtyDiff = computeDirtyDiff([
178
+ 'FIRST',
179
+ 'LAST'
180
+ ], [
181
+ 'FIRST',
182
+ '1. ADDED',
183
+ '2. ADDED',
184
+ '3. ADDED',
185
+ '4. ADDED',
186
+ '5. ADDED',
187
+ 'LAST'
188
+ ]);
189
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
190
+ changes: [
191
+ {
192
+ previousRange: { start: 1, end: 1 },
193
+ currentRange: { start: 1, end: 6 },
194
+ },
195
+ ],
196
+ });
197
+ });
198
+ [1, 2, 3, 4, 5].forEach(lines => {
199
+ it(`add ${formatLines(lines)} after single line`, () => {
200
+ const dirtyDiff = computeDirtyDiff(['0'], ['0'].concat(sequenceOfN(lines, () => 'ADDED LINE')));
201
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
202
+ changes: [
203
+ {
204
+ previousRange: { start: 1, end: 1 },
205
+ currentRange: { start: 1, end: lines + 1 },
206
+ },
207
+ ],
208
+ });
209
+ });
210
+ });
211
+ it('modify single line', () => {
212
+ const dirtyDiff = computeDirtyDiff([
213
+ 'FIRST',
214
+ 'TO-BE-MODIFIED',
215
+ 'LAST'
216
+ ], [
217
+ 'FIRST',
218
+ 'MODIFIED',
219
+ 'LAST'
220
+ ]);
221
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
222
+ changes: [
223
+ {
224
+ previousRange: { start: 1, end: 2 },
225
+ currentRange: { start: 1, end: 2 },
226
+ },
227
+ ],
228
+ });
229
+ });
230
+ it('modify all lines', () => {
231
+ const numberOfLines = 10;
232
+ const dirtyDiff = computeDirtyDiff(sequenceOfN(numberOfLines, () => 'TO-BE-MODIFIED'), sequenceOfN(numberOfLines, () => 'MODIFIED'));
233
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
234
+ changes: [
235
+ {
236
+ previousRange: { start: 0, end: numberOfLines },
237
+ currentRange: { start: 0, end: numberOfLines },
238
+ },
239
+ ],
240
+ });
241
+ });
242
+ it('modify lines at the end', () => {
243
+ const dirtyDiff = computeDirtyDiff([
244
+ '1',
245
+ '2',
246
+ '3',
247
+ '4'
248
+ ], [
249
+ '1',
250
+ '2-changed',
251
+ '3-changed'
252
+ ]);
253
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
254
+ changes: [
255
+ {
256
+ previousRange: { start: 1, end: 4 },
257
+ currentRange: { start: 1, end: 3 },
258
+ },
259
+ ],
260
+ });
261
+ });
262
+ it('multiple diffs', () => {
263
+ const dirtyDiff = computeDirtyDiff([
264
+ 'TO-BE-CHANGED',
265
+ '1',
266
+ '2',
267
+ '3',
268
+ 'TO-BE-REMOVED',
269
+ '4',
270
+ '5',
271
+ '6',
272
+ '7',
273
+ '8',
274
+ '9'
275
+ ], [
276
+ 'CHANGED',
277
+ '1',
278
+ '2',
279
+ '3',
280
+ '4',
281
+ '5',
282
+ '6',
283
+ '7',
284
+ '8',
285
+ '9',
286
+ 'ADDED',
287
+ ''
288
+ ]);
289
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
290
+ changes: [
291
+ {
292
+ previousRange: { start: 0, end: 1 },
293
+ currentRange: { start: 0, end: 1 },
294
+ },
295
+ {
296
+ previousRange: { start: 4, end: 5 },
297
+ currentRange: { start: 4, end: 4 },
298
+ },
299
+ {
300
+ previousRange: { start: 11, end: 11 },
301
+ currentRange: { start: 10, end: 12 },
302
+ },
303
+ ],
304
+ });
305
+ });
306
+ it('multiple additions', () => {
307
+ const dirtyDiff = computeDirtyDiff([
308
+ 'first line',
309
+ '',
310
+ 'foo changed on master',
311
+ 'bar changed on master',
312
+ '',
313
+ '',
314
+ '',
315
+ '',
316
+ '',
317
+ 'last line'
318
+ ], [
319
+ 'first line',
320
+ '',
321
+ 'foo changed on master',
322
+ 'bar changed on master',
323
+ '',
324
+ 'NEW TEXT',
325
+ '',
326
+ '',
327
+ '',
328
+ 'last line',
329
+ '',
330
+ ''
331
+ ]);
332
+ (0, chai_1.expect)(dirtyDiff).to.be.deep.equal({
333
+ changes: [
334
+ {
335
+ previousRange: { start: 5, end: 5 },
336
+ currentRange: { start: 5, end: 6 },
337
+ },
338
+ {
339
+ previousRange: { start: 8, end: 8 },
340
+ currentRange: { start: 9, end: 10 },
341
+ },
342
+ {
343
+ previousRange: { start: 9, end: 10 },
344
+ currentRange: { start: 12, end: 12 },
345
+ },
346
+ ],
347
+ });
348
+ });
349
+ });
350
+ function computeDirtyDiff(previous, modified) {
351
+ const a = content_lines_1.ContentLines.arrayLike({
352
+ length: previous.length,
353
+ getLineContent: line => {
354
+ const value = previous[line];
355
+ if (value === undefined) {
356
+ console.log(undefined);
357
+ }
358
+ return value;
359
+ },
360
+ });
361
+ const b = content_lines_1.ContentLines.arrayLike({
362
+ length: modified.length,
363
+ getLineContent: line => {
364
+ const value = modified[line];
365
+ if (value === undefined) {
366
+ console.log(undefined);
367
+ }
368
+ return value;
369
+ },
370
+ });
371
+ return diffComputer.computeDirtyDiff(a, b);
372
+ }
373
+ function sequenceOfN(n, mapFn = i => i.toString()) {
374
+ return Array.from(new Array(n).keys()).map((value, index) => mapFn(index));
375
+ }
376
+ function formatLines(n) {
377
+ return n + ' line' + (n > 1 ? 's' : '');
378
+ }
379
+ function insertIntoArray(target, start, ...items) {
380
+ const copy = target.slice(0);
381
+ copy.splice(start, 0, ...items);
382
+ return copy;
383
+ }
384
+ //# sourceMappingURL=diff-computer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-computer.spec.js","sourceRoot":"","sources":["../../../src/browser/dirty-diff/diff-computer.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { EditorDecoration, EditorDecorator, TextEditor } from '@theia/editor/lib/browser';
2
+ import { DirtyDiff, Change } from './diff-computer';
3
+ import { URI } from '@theia/core';
4
+ export declare enum DirtyDiffDecorationType {
5
+ AddedLine = "dirty-diff-added-line",
6
+ RemovedLine = "dirty-diff-removed-line",
7
+ ModifiedLine = "dirty-diff-modified-line"
8
+ }
9
+ export interface DirtyDiffUpdate extends DirtyDiff {
10
+ readonly editor: TextEditor;
11
+ readonly previousRevisionUri?: URI;
12
+ }
13
+ export declare class DirtyDiffDecorator extends EditorDecorator {
14
+ applyDecorations(update: DirtyDiffUpdate): void;
15
+ protected toDeltaDecoration(change: Change): EditorDecoration;
16
+ }
17
+ //# sourceMappingURL=dirty-diff-decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirty-diff-decorator.d.ts","sourceRoot":"","sources":["../../../src/browser/dirty-diff/dirty-diff-decorator.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,gBAAgB,EAGhB,eAAe,EACf,UAAU,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAa,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,oBAAY,uBAAuB;IAC/B,SAAS,0BAA0B;IACnC,WAAW,4BAA4B;IACvC,YAAY,6BAA6B;CAC5C;AA+DD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAC9C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC;CACtC;AAED,qBACa,kBAAmB,SAAQ,eAAe;IAEnD,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAK/C,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;CAKhE"}