@theia/scm 1.64.0-next.35 → 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.
@@ -5,6 +5,7 @@ import { DocumentLineRangeMap } from '../model/range-mapping';
5
5
  export declare class MergeEditorScrollSync implements Disposable {
6
6
  protected readonly mergeEditor: MergeEditor;
7
7
  protected readonly toDispose: DisposableCollection;
8
+ protected isSyncing: boolean;
8
9
  constructor(mergeEditor: MergeEditor);
9
10
  dispose(): void;
10
11
  storeScrollState(): unknown;
@@ -14,6 +15,6 @@ export declare class MergeEditorScrollSync implements Disposable {
14
15
  protected handleSide2ScrollTopChanged(scrollTop: number): void;
15
16
  protected handleResultScrollTopChanged(scrollTop: number): void;
16
17
  protected handleBaseScrollTopChanged(scrollTop: number): void;
17
- protected synchronizeScrolling(sourceEditor: MonacoEditor, targetEditor: MonacoEditor, lineRangeMap: DocumentLineRangeMap): void;
18
+ protected computeTargetScrollTop(sourceEditor: MonacoEditor, targetEditor: MonacoEditor, lineRangeMap: DocumentLineRangeMap): number;
18
19
  }
19
20
  //# sourceMappingURL=merge-editor-scroll-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-editor-scroll-sync.d.ts","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/merge-editor-scroll-sync.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,qBAAsB,YAAW,UAAU;IAIxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAFvD,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;gBAE3B,WAAW,EAAE,WAAW;IA6DvD,OAAO,IAAI,IAAI;IAIf,gBAAgB,IAAI,OAAO;IAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAWxC,MAAM,IAAI,IAAI;IAKd,SAAS,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAkB9D,SAAS,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAkB9D,SAAS,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAc/D,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAc7D,SAAS,CAAC,oBAAoB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,GAAG,IAAI;CAmCnI"}
1
+ {"version":3,"file":"merge-editor-scroll-sync.d.ts","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/merge-editor-scroll-sync.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,qBAAsB,YAAW,UAAU;IAKxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW;IAHvD,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAC1D,SAAS,CAAC,SAAS,UAAS;gBAEG,WAAW,EAAE,WAAW;IA4DvD,OAAO,IAAI,IAAI;IAIf,gBAAgB,IAAI,OAAO;IAI3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAWxC,MAAM,IAAI,IAAI;IAad,SAAS,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAoB9D,SAAS,CAAC,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAoB9D,SAAS,CAAC,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqB/D,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqB7D,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,GAAG,MAAM;CAmCvI"}
@@ -26,18 +26,18 @@ class MergeEditorScrollSync {
26
26
  constructor(mergeEditor) {
27
27
  this.mergeEditor = mergeEditor;
28
28
  this.toDispose = new core_1.DisposableCollection();
29
+ this.isSyncing = false;
29
30
  const { side1Pane, side2Pane, resultPane, basePane } = mergeEditor;
30
- let isSyncing = false;
31
31
  const syncingHandler = (handler) => (event) => {
32
- if (isSyncing) {
32
+ if (this.isSyncing) {
33
33
  return;
34
34
  }
35
- isSyncing = true;
35
+ this.isSyncing = true;
36
36
  try {
37
37
  handler(event);
38
38
  }
39
39
  finally {
40
- isSyncing = false;
40
+ this.isSyncing = false;
41
41
  }
42
42
  };
43
43
  this.toDispose.push(side1Pane.editor.getControl().onDidScrollChange(syncingHandler(event => {
@@ -99,8 +99,17 @@ class MergeEditorScrollSync {
99
99
  }
100
100
  }
101
101
  update() {
102
- const scrollTop = this.mergeEditor.side1Pane.editor.getControl().getScrollTop();
103
- this.handleSide1ScrollTopChanged(scrollTop);
102
+ if (this.isSyncing) {
103
+ return;
104
+ }
105
+ this.isSyncing = true;
106
+ try {
107
+ const scrollTop = this.mergeEditor.side1Pane.editor.getControl().getScrollTop();
108
+ this.handleSide1ScrollTopChanged(scrollTop);
109
+ }
110
+ finally {
111
+ this.isSyncing = false;
112
+ }
104
113
  }
105
114
  handleSide1ScrollTopChanged(scrollTop) {
106
115
  const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, shouldAlignResult, model } = this.mergeEditor;
@@ -109,13 +118,15 @@ class MergeEditorScrollSync {
109
118
  resultPane.editor.getControl().setScrollTop(scrollTop);
110
119
  }
111
120
  else {
112
- this.synchronizeScrolling(side1Pane.editor, resultPane.editor, model.side1ToResultLineRangeMap);
121
+ const targetScrollTop = this.computeTargetScrollTop(side1Pane.editor, resultPane.editor, model.side1ToResultLineRangeMap);
122
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
113
123
  }
114
124
  if (shouldAlignBase) {
115
125
  basePane.editor.getControl().setScrollTop(scrollTop);
116
126
  }
117
127
  else {
118
- this.synchronizeScrolling(side1Pane.editor, basePane.editor, model.side1ToBaseLineRangeMap);
128
+ const targetScrollTop = this.computeTargetScrollTop(side1Pane.editor, basePane.editor, model.side1ToBaseLineRangeMap);
129
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
119
130
  }
120
131
  }
121
132
  handleSide2ScrollTopChanged(scrollTop) {
@@ -125,43 +136,59 @@ class MergeEditorScrollSync {
125
136
  resultPane.editor.getControl().setScrollTop(scrollTop);
126
137
  }
127
138
  else {
128
- this.synchronizeScrolling(side2Pane.editor, resultPane.editor, model.side2ToResultLineRangeMap);
139
+ const targetScrollTop = this.computeTargetScrollTop(side2Pane.editor, resultPane.editor, model.side2ToResultLineRangeMap);
140
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
129
141
  }
130
142
  if (shouldAlignBase) {
131
143
  basePane.editor.getControl().setScrollTop(scrollTop);
132
144
  }
133
145
  else {
134
- this.synchronizeScrolling(side2Pane.editor, basePane.editor, model.side2ToBaseLineRangeMap);
146
+ const targetScrollTop = this.computeTargetScrollTop(side2Pane.editor, basePane.editor, model.side2ToBaseLineRangeMap);
147
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
135
148
  }
136
149
  }
137
150
  handleResultScrollTopChanged(scrollTop) {
138
- const { side1Pane, side2Pane, resultPane, basePane, shouldAlignResult, model } = this.mergeEditor;
151
+ const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, shouldAlignResult, model } = this.mergeEditor;
139
152
  if (shouldAlignResult) {
140
153
  side1Pane.editor.getControl().setScrollTop(scrollTop);
141
154
  side2Pane.editor.getControl().setScrollTop(scrollTop);
142
155
  }
143
156
  else {
144
- this.synchronizeScrolling(resultPane.editor, side1Pane.editor, model.resultToSide1LineRangeMap);
145
- this.synchronizeScrolling(resultPane.editor, side2Pane.editor, model.resultToSide2LineRangeMap);
157
+ const targetScrollTop = this.computeTargetScrollTop(resultPane.editor, side1Pane.editor, model.resultToSide1LineRangeMap);
158
+ side1Pane.editor.getControl().setScrollTop(targetScrollTop);
159
+ side2Pane.editor.getControl().setScrollTop(targetScrollTop);
160
+ if (shouldAlignBase) {
161
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
162
+ }
163
+ }
164
+ if (!shouldAlignBase) {
165
+ const targetScrollTop = this.computeTargetScrollTop(resultPane.editor, basePane.editor, model.resultToBaseLineRangeMap);
166
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
146
167
  }
147
- this.synchronizeScrolling(resultPane.editor, basePane.editor, model.resultToBaseLineRangeMap);
148
168
  }
149
169
  handleBaseScrollTopChanged(scrollTop) {
150
- const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, model } = this.mergeEditor;
170
+ const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, shouldAlignResult, model } = this.mergeEditor;
151
171
  if (shouldAlignBase) {
152
172
  side1Pane.editor.getControl().setScrollTop(scrollTop);
153
173
  side2Pane.editor.getControl().setScrollTop(scrollTop);
154
174
  }
155
175
  else {
156
- this.synchronizeScrolling(basePane.editor, side1Pane.editor, model.baseToSide1LineRangeMap);
157
- this.synchronizeScrolling(basePane.editor, side2Pane.editor, model.baseToSide2LineRangeMap);
176
+ const targetScrollTop = this.computeTargetScrollTop(basePane.editor, side1Pane.editor, model.baseToSide1LineRangeMap);
177
+ side1Pane.editor.getControl().setScrollTop(targetScrollTop);
178
+ side2Pane.editor.getControl().setScrollTop(targetScrollTop);
179
+ if (shouldAlignResult) {
180
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
181
+ }
182
+ }
183
+ if (!shouldAlignResult) {
184
+ const targetScrollTop = this.computeTargetScrollTop(basePane.editor, resultPane.editor, model.baseToResultLineRangeMap);
185
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
158
186
  }
159
- this.synchronizeScrolling(basePane.editor, resultPane.editor, model.baseToResultLineRangeMap);
160
187
  }
161
- synchronizeScrolling(sourceEditor, targetEditor, lineRangeMap) {
188
+ computeTargetScrollTop(sourceEditor, targetEditor, lineRangeMap) {
162
189
  const visibleRanges = sourceEditor.getVisibleRanges();
163
190
  if (visibleRanges.length === 0) {
164
- return;
191
+ return 0;
165
192
  }
166
193
  const topLineNumber = visibleRanges[0].start.line;
167
194
  const scrollTop = sourceEditor.getControl().getScrollTop();
@@ -184,7 +211,7 @@ class MergeEditorScrollSync {
184
211
  }
185
212
  const factor = Math.min(sourceEndPx === sourceStartTopPx ? 0 : (scrollTop - sourceStartTopPx) / (sourceEndPx - sourceStartTopPx), 1);
186
213
  const targetScrollTop = targetStartTopPx + (targetEndPx - targetStartTopPx) * factor;
187
- targetEditor.getControl().setScrollTop(targetScrollTop);
214
+ return targetScrollTop;
188
215
  }
189
216
  }
190
217
  exports.MergeEditorScrollSync = MergeEditorScrollSync;
@@ -1 +1 @@
1
- {"version":3,"file":"merge-editor-scroll-sync.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/merge-editor-scroll-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-editor-scroll-sync.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/view/merge-editor-scroll-sync.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.35+c964c3040",
3
+ "version": "1.64.0",
4
4
  "description": "Theia - Source control Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.64.0-next.35+c964c3040",
7
- "@theia/editor": "1.64.0-next.35+c964c3040",
8
- "@theia/filesystem": "1.64.0-next.35+c964c3040",
9
- "@theia/monaco": "1.64.0-next.35+c964c3040",
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": "c964c30402a92d5ba662fcafa839af99d8760f53"
57
+ "gitHead": "4c074e0d16c48e96a044b2f8bc4717de2e031c4b"
58
58
  }
@@ -27,20 +27,20 @@ import { DocumentLineRangeMap } from '../model/range-mapping';
27
27
  export class MergeEditorScrollSync implements Disposable {
28
28
 
29
29
  protected readonly toDispose = new DisposableCollection();
30
+ protected isSyncing = false;
30
31
 
31
32
  constructor(protected readonly mergeEditor: MergeEditor) {
32
33
  const { side1Pane, side2Pane, resultPane, basePane } = mergeEditor;
33
34
 
34
- let isSyncing = false;
35
35
  const syncingHandler = <T>(handler: (event: T) => void) => (event: T) => {
36
- if (isSyncing) {
36
+ if (this.isSyncing) {
37
37
  return;
38
38
  }
39
- isSyncing = true;
39
+ this.isSyncing = true;
40
40
  try {
41
41
  handler(event);
42
42
  } finally {
43
- isSyncing = false;
43
+ this.isSyncing = false;
44
44
  }
45
45
  };
46
46
 
@@ -109,8 +109,16 @@ export class MergeEditorScrollSync implements Disposable {
109
109
  }
110
110
 
111
111
  update(): void {
112
- const scrollTop = this.mergeEditor.side1Pane.editor.getControl().getScrollTop();
113
- this.handleSide1ScrollTopChanged(scrollTop);
112
+ if (this.isSyncing) {
113
+ return;
114
+ }
115
+ this.isSyncing = true;
116
+ try {
117
+ const scrollTop = this.mergeEditor.side1Pane.editor.getControl().getScrollTop();
118
+ this.handleSide1ScrollTopChanged(scrollTop);
119
+ } finally {
120
+ this.isSyncing = false;
121
+ }
114
122
  }
115
123
 
116
124
  protected handleSide1ScrollTopChanged(scrollTop: number): void {
@@ -121,13 +129,15 @@ export class MergeEditorScrollSync implements Disposable {
121
129
  if (shouldAlignResult) {
122
130
  resultPane.editor.getControl().setScrollTop(scrollTop);
123
131
  } else {
124
- this.synchronizeScrolling(side1Pane.editor, resultPane.editor, model.side1ToResultLineRangeMap);
132
+ const targetScrollTop = this.computeTargetScrollTop(side1Pane.editor, resultPane.editor, model.side1ToResultLineRangeMap);
133
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
125
134
  }
126
135
 
127
136
  if (shouldAlignBase) {
128
137
  basePane.editor.getControl().setScrollTop(scrollTop);
129
138
  } else {
130
- this.synchronizeScrolling(side1Pane.editor, basePane.editor, model.side1ToBaseLineRangeMap);
139
+ const targetScrollTop = this.computeTargetScrollTop(side1Pane.editor, basePane.editor, model.side1ToBaseLineRangeMap);
140
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
131
141
  }
132
142
  }
133
143
 
@@ -139,48 +149,64 @@ export class MergeEditorScrollSync implements Disposable {
139
149
  if (shouldAlignResult) {
140
150
  resultPane.editor.getControl().setScrollTop(scrollTop);
141
151
  } else {
142
- this.synchronizeScrolling(side2Pane.editor, resultPane.editor, model.side2ToResultLineRangeMap);
152
+ const targetScrollTop = this.computeTargetScrollTop(side2Pane.editor, resultPane.editor, model.side2ToResultLineRangeMap);
153
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
143
154
  }
144
155
 
145
156
  if (shouldAlignBase) {
146
157
  basePane.editor.getControl().setScrollTop(scrollTop);
147
158
  } else {
148
- this.synchronizeScrolling(side2Pane.editor, basePane.editor, model.side2ToBaseLineRangeMap);
159
+ const targetScrollTop = this.computeTargetScrollTop(side2Pane.editor, basePane.editor, model.side2ToBaseLineRangeMap);
160
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
149
161
  }
150
162
  }
151
163
 
152
164
  protected handleResultScrollTopChanged(scrollTop: number): void {
153
- const { side1Pane, side2Pane, resultPane, basePane, shouldAlignResult, model } = this.mergeEditor;
165
+ const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, shouldAlignResult, model } = this.mergeEditor;
154
166
 
155
167
  if (shouldAlignResult) {
156
168
  side1Pane.editor.getControl().setScrollTop(scrollTop);
157
169
  side2Pane.editor.getControl().setScrollTop(scrollTop);
158
170
  } else {
159
- this.synchronizeScrolling(resultPane.editor, side1Pane.editor, model.resultToSide1LineRangeMap);
160
- this.synchronizeScrolling(resultPane.editor, side2Pane.editor, model.resultToSide2LineRangeMap);
171
+ const targetScrollTop = this.computeTargetScrollTop(resultPane.editor, side1Pane.editor, model.resultToSide1LineRangeMap);
172
+ side1Pane.editor.getControl().setScrollTop(targetScrollTop);
173
+ side2Pane.editor.getControl().setScrollTop(targetScrollTop);
174
+ if (shouldAlignBase) {
175
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
176
+ }
161
177
  }
162
178
 
163
- this.synchronizeScrolling(resultPane.editor, basePane.editor, model.resultToBaseLineRangeMap);
179
+ if (!shouldAlignBase) {
180
+ const targetScrollTop = this.computeTargetScrollTop(resultPane.editor, basePane.editor, model.resultToBaseLineRangeMap);
181
+ basePane.editor.getControl().setScrollTop(targetScrollTop);
182
+ }
164
183
  }
165
184
 
166
185
  protected handleBaseScrollTopChanged(scrollTop: number): void {
167
- const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, model } = this.mergeEditor;
186
+ const { side1Pane, side2Pane, resultPane, basePane, shouldAlignBase, shouldAlignResult, model } = this.mergeEditor;
168
187
 
169
188
  if (shouldAlignBase) {
170
189
  side1Pane.editor.getControl().setScrollTop(scrollTop);
171
190
  side2Pane.editor.getControl().setScrollTop(scrollTop);
172
191
  } else {
173
- this.synchronizeScrolling(basePane.editor, side1Pane.editor, model.baseToSide1LineRangeMap);
174
- this.synchronizeScrolling(basePane.editor, side2Pane.editor, model.baseToSide2LineRangeMap);
192
+ const targetScrollTop = this.computeTargetScrollTop(basePane.editor, side1Pane.editor, model.baseToSide1LineRangeMap);
193
+ side1Pane.editor.getControl().setScrollTop(targetScrollTop);
194
+ side2Pane.editor.getControl().setScrollTop(targetScrollTop);
195
+ if (shouldAlignResult) {
196
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
197
+ }
175
198
  }
176
199
 
177
- this.synchronizeScrolling(basePane.editor, resultPane.editor, model.baseToResultLineRangeMap);
200
+ if (!shouldAlignResult) {
201
+ const targetScrollTop = this.computeTargetScrollTop(basePane.editor, resultPane.editor, model.baseToResultLineRangeMap);
202
+ resultPane.editor.getControl().setScrollTop(targetScrollTop);
203
+ }
178
204
  }
179
205
 
180
- protected synchronizeScrolling(sourceEditor: MonacoEditor, targetEditor: MonacoEditor, lineRangeMap: DocumentLineRangeMap): void {
206
+ protected computeTargetScrollTop(sourceEditor: MonacoEditor, targetEditor: MonacoEditor, lineRangeMap: DocumentLineRangeMap): number {
181
207
  const visibleRanges = sourceEditor.getVisibleRanges();
182
208
  if (visibleRanges.length === 0) {
183
- return;
209
+ return 0;
184
210
  }
185
211
 
186
212
  const topLineNumber = visibleRanges[0].start.line;
@@ -210,6 +236,6 @@ export class MergeEditorScrollSync implements Disposable {
210
236
  const factor = Math.min(sourceEndPx === sourceStartTopPx ? 0 : (scrollTop - sourceStartTopPx) / (sourceEndPx - sourceStartTopPx), 1);
211
237
  const targetScrollTop = targetStartTopPx + (targetEndPx - targetStartTopPx) * factor;
212
238
 
213
- targetEditor.getControl().setScrollTop(targetScrollTop);
239
+ return targetScrollTop;
214
240
  }
215
241
  }