@theia/scm 1.69.0-next.54 → 1.69.0-next.65

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.
@@ -1,7 +1,6 @@
1
1
  import { Disposable, Event, MenuModelRegistry, MenuPath, URI } from '@theia/core';
2
2
  import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
3
3
  import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
4
- import { MonacoDiffEditor } from '@theia/monaco/lib/browser/monaco-diff-editor';
5
4
  import { MonacoEditorProvider } from '@theia/monaco/lib/browser/monaco-editor-provider';
6
5
  import { Change } from './diff-computer';
7
6
  export declare const SCM_CHANGE_TITLE_MENU: MenuPath;
@@ -22,11 +21,10 @@ export declare class DirtyDiffWidget implements Disposable {
22
21
  private readonly onDidCloseEmitter;
23
22
  readonly onDidClose: Event<unknown>;
24
23
  protected index: number;
25
- private peekView;
26
- private diffEditorPromise;
24
+ private readonly peekView;
25
+ private readonly diffEditorPromise;
27
26
  protected _changes?: readonly Change[];
28
27
  constructor(props: DirtyDiffWidgetProps, editorProvider: MonacoEditorProvider, contextKeyService: ContextKeyService, menuModelRegistry: MenuModelRegistry);
29
- create(): void;
30
28
  get changes(): readonly Change[];
31
29
  set changes(changes: readonly Change[]);
32
30
  get editor(): MonacoEditor;
@@ -35,7 +33,7 @@ export declare class DirtyDiffWidget implements Disposable {
35
33
  get currentChange(): Change | undefined;
36
34
  get currentChangeIndex(): number;
37
35
  protected handleChangedChanges(updated: readonly Change[]): void;
38
- showChange(index: number): Promise<void>;
36
+ showChange(index: number): void;
39
37
  showNextChange(): void;
40
38
  showPreviousChange(): void;
41
39
  getContentWithSelectedChanges(predicate: (change: Change, index: number, changes: readonly Change[]) => boolean): Promise<string>;
@@ -45,6 +43,5 @@ export declare class DirtyDiffWidget implements Disposable {
45
43
  protected computePrimaryHeading(): string;
46
44
  protected computeSecondaryHeading(): string;
47
45
  protected computeHeightInLines(): number;
48
- protected checkCreated(): Promise<MonacoDiffEditor>;
49
46
  }
50
47
  //# sourceMappingURL=dirty-diff-widget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dirty-diff-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/dirty-diff/dirty-diff-widget.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAe,UAAU,EAAW,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAE7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAIpD,eAAO,MAAM,qBAAqB,EAAE,QAAoC,CAAC;AACzE,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,EAAE,QAA2C,CAAC;AAEvF,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC;CACrC;AAED,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,eAAe,CAAC;AAEtF,qBACa,eAAgB,YAAW,UAAU;IAUZ,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB;IAChD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAX5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAgC;IACnE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGc,KAAK,EAAE,oBAAoB,EACrC,cAAc,EAAE,oBAAoB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB;IAI5E,MAAM,IAAI,IAAI;IAMd,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAErC;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,mBAAmB,IAAI,GAAG,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAsB1D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,cAAc,IAAI,IAAI;IAUtB,kBAAkB,IAAI,IAAI;IAUpB,6BAA6B,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvI,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAoBnC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,qBAAqB,IAAI,MAAM;IAIzC,SAAS,CAAC,uBAAuB,IAAI,MAAM;IAO3C,SAAS,CAAC,oBAAoB,IAAI,MAAM;cAYxB,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG5D"}
1
+ {"version":3,"file":"dirty-diff-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/dirty-diff/dirty-diff-widget.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAe,UAAU,EAAW,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAO,MAAM,aAAa,CAAC;AAE7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAa,MAAM,iBAAiB,CAAC;AAIpD,eAAO,MAAM,qBAAqB,EAAE,QAAoC,CAAC;AACzE,+FAA+F;AAC/F,eAAO,MAAM,4BAA4B,EAAE,QAA2C,CAAC;AAEvF,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC;CACrC;AAED,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,eAAe,CAAC;AAEtF,qBACa,eAAgB,YAAW,UAAU;IAUZ,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB;IAChD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAC7C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAX5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0B;IAC5D,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAgC;IACnE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGc,KAAK,EAAE,oBAAoB,EACrC,cAAc,EAAE,oBAAoB,EACvC,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB;IAO5E,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAErC;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,mBAAmB,IAAI,GAAG,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAsBhE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B,cAAc,IAAI,IAAI;IAStB,kBAAkB,IAAI,IAAI;IASpB,6BAA6B,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvI,OAAO,IAAI,IAAI;IAKf,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAyBnC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,qBAAqB,IAAI,MAAM;IAIzC,SAAS,CAAC,uBAAuB,IAAI,MAAM;IAO3C,SAAS,CAAC,oBAAoB,IAAI,MAAM;CAW3C"}
@@ -41,8 +41,6 @@ let DirtyDiffWidget = class DirtyDiffWidget {
41
41
  this.onDidCloseEmitter = new core_1.Emitter();
42
42
  this.onDidClose = this.onDidCloseEmitter.event;
43
43
  this.index = -1;
44
- }
45
- create() {
46
44
  this.peekView = new DirtyDiffPeekView(this);
47
45
  this.peekView.onDidClose(e => this.onDidCloseEmitter.fire(e));
48
46
  this.diffEditorPromise = this.peekView.create();
@@ -91,15 +89,13 @@ let DirtyDiffWidget = class DirtyDiffWidget {
91
89
  this._changes = updated;
92
90
  this.updateHeading();
93
91
  }
94
- async showChange(index) {
95
- await this.checkCreated();
92
+ showChange(index) {
96
93
  if (index >= 0 && index < this.changes.length) {
97
94
  this.index = index;
98
95
  this.showCurrentChange();
99
96
  }
100
97
  }
101
98
  showNextChange() {
102
- this.checkCreated();
103
99
  const index = this.index;
104
100
  const length = this.changes.length;
105
101
  if (length > 0 && (index < 0 || length > 1)) {
@@ -108,7 +104,6 @@ let DirtyDiffWidget = class DirtyDiffWidget {
108
104
  }
109
105
  }
110
106
  showPreviousChange() {
111
- this.checkCreated();
112
107
  const index = this.index;
113
108
  const length = this.changes.length;
114
109
  if (length > 0 && (index < 0 || length > 1)) {
@@ -117,21 +112,23 @@ let DirtyDiffWidget = class DirtyDiffWidget {
117
112
  }
118
113
  }
119
114
  async getContentWithSelectedChanges(predicate) {
120
- await this.checkCreated();
121
115
  const changes = this.changes.filter(predicate);
122
- const { diffEditor } = await this.diffEditorPromise;
123
- const diffEditorModel = diffEditor.getModel();
124
- return applyChanges(changes, diffEditorModel.original, diffEditorModel.modified);
116
+ const diffEditor = await this.diffEditorPromise;
117
+ return applyChanges(changes, diffEditor.originalModel.textEditorModel, diffEditor.modifiedModel.textEditorModel);
125
118
  }
126
119
  dispose() {
127
- this.peekView?.dispose();
120
+ this.peekView.dispose();
128
121
  this.onDidCloseEmitter.dispose();
129
122
  }
130
123
  showCurrentChange() {
131
124
  this.updateHeading();
132
125
  const { previousRange, currentRange } = this.changes[this.index];
133
- this.peekView.show(vscode_languageserver_protocol_1.Position.create(diff_computer_1.LineRange.getEndPosition(currentRange).line, 0), this.computeHeightInLines());
134
- this.diffEditorPromise.then(({ diffEditor }) => {
126
+ this.peekView.show(vscode_languageserver_protocol_1.Position.create(diff_computer_1.LineRange.getEndPosition(currentRange).line, 0), this.computeHeightInLines()).then(async () => {
127
+ this.editor.focus();
128
+ const diffEditor = await this.diffEditorPromise;
129
+ if (diffEditor.isDisposed()) {
130
+ return;
131
+ }
135
132
  let startLine = diff_computer_1.LineRange.getStartPosition(currentRange).line;
136
133
  let endLine = diff_computer_1.LineRange.getEndPosition(currentRange).line;
137
134
  if (diff_computer_1.LineRange.isEmpty(currentRange)) { // the change is a removal
@@ -141,10 +138,9 @@ let DirtyDiffWidget = class DirtyDiffWidget {
141
138
  --startLine;
142
139
  ++endLine;
143
140
  }
144
- diffEditor.revealLinesInCenter(startLine + 1, endLine + 1, // monaco line numbers are 1-based
141
+ diffEditor.diffEditor.revealLinesInCenter(startLine + 1, endLine + 1, // monaco line numbers are 1-based
145
142
  monaco.editor.ScrollType.Immediate);
146
143
  });
147
- this.editor.focus();
148
144
  }
149
145
  updateHeading() {
150
146
  this.peekView.setTitle(this.computePrimaryHeading(), this.computeSecondaryHeading());
@@ -167,17 +163,8 @@ let DirtyDiffWidget = class DirtyDiffWidget {
167
163
  const changeHeightInLines = diff_computer_1.LineRange.getLineCount(currentRange) + diff_computer_1.LineRange.getLineCount(previousRange);
168
164
  return Math.min(changeHeightInLines + /* padding */ 8, Math.floor(editorHeightInLines / 3));
169
165
  }
170
- async checkCreated() {
171
- return this.diffEditorPromise;
172
- }
173
166
  };
174
167
  exports.DirtyDiffWidget = DirtyDiffWidget;
175
- tslib_1.__decorate([
176
- (0, inversify_1.postConstruct)(),
177
- tslib_1.__metadata("design:type", Function),
178
- tslib_1.__metadata("design:paramtypes", []),
179
- tslib_1.__metadata("design:returntype", void 0)
180
- ], DirtyDiffWidget.prototype, "create", null);
181
168
  exports.DirtyDiffWidget = DirtyDiffWidget = tslib_1.__decorate([
182
169
  (0, inversify_1.injectable)(),
183
170
  tslib_1.__param(0, (0, inversify_1.inject)(exports.DirtyDiffWidgetProps)),
@@ -248,34 +235,27 @@ class DirtyDiffPeekView extends monaco_editor_peek_view_widget_1.MonacoEditorPee
248
235
  try {
249
236
  this.bodyElement = document.createElement('div');
250
237
  this.bodyElement.classList.add('body');
251
- const diffEditor = await this.widget.editorProvider.createEmbeddedDiffEditor(this.editor, this.bodyElement, this.widget.previousRevisionUri);
238
+ this.diffEditorPromise = this.widget.editorProvider.createEmbeddedDiffEditor(this.editor, this.bodyElement, this.widget.previousRevisionUri);
239
+ const diffEditor = await this.diffEditorPromise;
252
240
  this.diffEditor = diffEditor;
253
241
  this.toDispose.push(diffEditor);
254
242
  super.create();
255
- return new Promise(resolve => {
256
- // The diff computation is asynchronous and may complete before or after we register the listener.
257
- // This can happen when the file is already open in another editor, causing the model to be cached
258
- // and the diff to compute almost instantly. To handle this race condition, we check if the diff
259
- // is already available before waiting for onDidUpdateDiff.
260
- // setTimeout is needed because the non-side-by-side diff editor might still not have created the view zones;
261
- // otherwise, the first change shown might not be properly revealed in the diff editor.
262
- // See also https://github.com/microsoft/vscode/blob/b30900b56c4b3ca6c65d7ab92032651f4cb23f15/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts#L248
263
- if (diffEditor.diffEditor.getLineChanges()) {
264
- setTimeout(() => resolve(diffEditor));
265
- return;
266
- }
267
- const disposable = diffEditor.diffEditor.onDidUpdateDiff(() => setTimeout(() => {
268
- resolve(diffEditor);
269
- disposable.dispose();
270
- }));
271
- });
243
+ return diffEditor;
272
244
  }
273
245
  catch (e) {
274
246
  this.dispose();
275
247
  throw e;
276
248
  }
277
249
  }
278
- show(rangeOrPos, heightInLines) {
250
+ async show(rangeOrPos, heightInLines) {
251
+ const { diffEditorPromise } = this;
252
+ if (!diffEditorPromise) {
253
+ throw new Error('Call the create() method first');
254
+ }
255
+ const diffEditor = await diffEditorPromise;
256
+ if (diffEditor.isDisposed()) {
257
+ return;
258
+ }
279
259
  const borderColor = this.getBorderColor();
280
260
  this.style({
281
261
  arrowColor: borderColor,
@@ -286,6 +266,31 @@ class DirtyDiffPeekView extends monaco_editor_peek_view_widget_1.MonacoEditorPee
286
266
  });
287
267
  this.updateActions();
288
268
  super.show(rangeOrPos, heightInLines);
269
+ diffEditor.handleVisibilityChanged(true);
270
+ return new Promise(resolve => {
271
+ // The diff computation is asynchronous and may complete before or after we register the listener.
272
+ // This can happen when the file is already open in another editor, causing the model to be cached
273
+ // and the diff to compute almost instantly. To handle this race condition, we check if the diff
274
+ // is already available before waiting for onDidUpdateDiff.
275
+ // setTimeout is needed because the non-side-by-side diff editor might still not have created the view zones;
276
+ // otherwise, the first change shown might not be properly revealed in the diff editor.
277
+ // See also https://github.com/microsoft/vscode/blob/b30900b56c4b3ca6c65d7ab92032651f4cb23f15/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts#L248
278
+ if (diffEditor.diffEditor.getLineChanges()) {
279
+ setTimeout(() => resolve());
280
+ return;
281
+ }
282
+ const disposable = diffEditor.diffEditor.onDidUpdateDiff(() => setTimeout(() => {
283
+ resolve();
284
+ disposable.dispose();
285
+ }));
286
+ });
287
+ }
288
+ hide() {
289
+ const { diffEditor } = this;
290
+ if (diffEditor && !diffEditor.isDisposed()) {
291
+ diffEditor.handleVisibilityChanged(false);
292
+ }
293
+ super.hide();
289
294
  }
290
295
  getBorderColor() {
291
296
  const { currentChange } = this.widget;
@@ -1 +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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"}
1
+ {"version":3,"file":"dirty-diff-widget.js","sourceRoot":"","sources":["../../../src/browser/dirty-diff/dirty-diff-widget.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.69.0-next.54+0a0cf04cb",
3
+ "version": "1.69.0-next.65+3b83c706b",
4
4
  "description": "Theia - Source control Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.69.0-next.54+0a0cf04cb",
7
- "@theia/editor": "1.69.0-next.54+0a0cf04cb",
8
- "@theia/filesystem": "1.69.0-next.54+0a0cf04cb",
9
- "@theia/monaco": "1.69.0-next.54+0a0cf04cb",
6
+ "@theia/core": "1.69.0-next.65+3b83c706b",
7
+ "@theia/editor": "1.69.0-next.65+3b83c706b",
8
+ "@theia/filesystem": "1.69.0-next.65+3b83c706b",
9
+ "@theia/monaco": "1.69.0-next.65+3b83c706b",
10
10
  "@theia/monaco-editor-core": "1.96.302",
11
11
  "@types/diff": "^5.2.1",
12
12
  "diff": "^5.2.0",
@@ -55,5 +55,5 @@
55
55
  "nyc": {
56
56
  "extends": "../../configs/nyc.json"
57
57
  },
58
- "gitHead": "0a0cf04cb6d9a3531ecd1c48cfe44967ac93f076"
58
+ "gitHead": "3b83c706bf9e72c496a4eadc9d56df0859498088"
59
59
  }
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
17
+ import { inject, injectable } from '@theia/core/shared/inversify';
18
18
  import { Position, Range } from '@theia/core/shared/vscode-languageserver-protocol';
19
19
  import { CommandMenu, Disposable, Emitter, Event, MenuModelRegistry, MenuPath, URI, nls } from '@theia/core';
20
20
  import { codicon } from '@theia/core/lib/browser';
@@ -47,8 +47,8 @@ export class DirtyDiffWidget implements Disposable {
47
47
  private readonly onDidCloseEmitter = new Emitter<unknown>();
48
48
  readonly onDidClose: Event<unknown> = this.onDidCloseEmitter.event;
49
49
  protected index: number = -1;
50
- private peekView: DirtyDiffPeekView;
51
- private diffEditorPromise: Promise<MonacoDiffEditor>;
50
+ private readonly peekView: DirtyDiffPeekView;
51
+ private readonly diffEditorPromise: Promise<MonacoDiffEditor>;
52
52
  protected _changes?: readonly Change[];
53
53
 
54
54
  constructor(
@@ -56,10 +56,7 @@ export class DirtyDiffWidget implements Disposable {
56
56
  @inject(MonacoEditorProvider) readonly editorProvider: MonacoEditorProvider,
57
57
  @inject(ContextKeyService) readonly contextKeyService: ContextKeyService,
58
58
  @inject(MenuModelRegistry) readonly menuModelRegistry: MenuModelRegistry,
59
- ) { }
60
-
61
- @postConstruct()
62
- create(): void {
59
+ ) {
63
60
  this.peekView = new DirtyDiffPeekView(this);
64
61
  this.peekView.onDidClose(e => this.onDidCloseEmitter.fire(e));
65
62
  this.diffEditorPromise = this.peekView.create();
@@ -115,8 +112,7 @@ export class DirtyDiffWidget implements Disposable {
115
112
  this.updateHeading();
116
113
  }
117
114
 
118
- async showChange(index: number): Promise<void> {
119
- await this.checkCreated();
115
+ showChange(index: number): void {
120
116
  if (index >= 0 && index < this.changes.length) {
121
117
  this.index = index;
122
118
  this.showCurrentChange();
@@ -124,7 +120,6 @@ export class DirtyDiffWidget implements Disposable {
124
120
  }
125
121
 
126
122
  showNextChange(): void {
127
- this.checkCreated();
128
123
  const index = this.index;
129
124
  const length = this.changes.length;
130
125
  if (length > 0 && (index < 0 || length > 1)) {
@@ -134,7 +129,6 @@ export class DirtyDiffWidget implements Disposable {
134
129
  }
135
130
 
136
131
  showPreviousChange(): void {
137
- this.checkCreated();
138
132
  const index = this.index;
139
133
  const length = this.changes.length;
140
134
  if (length > 0 && (index < 0 || length > 1)) {
@@ -144,24 +138,28 @@ export class DirtyDiffWidget implements Disposable {
144
138
  }
145
139
 
146
140
  async getContentWithSelectedChanges(predicate: (change: Change, index: number, changes: readonly Change[]) => boolean): Promise<string> {
147
- await this.checkCreated();
148
141
  const changes = this.changes.filter(predicate);
149
- const { diffEditor } = await this.diffEditorPromise!;
150
- const diffEditorModel = diffEditor.getModel()!;
151
- return applyChanges(changes, diffEditorModel.original, diffEditorModel.modified);
142
+ const diffEditor = await this.diffEditorPromise;
143
+ return applyChanges(changes, diffEditor.originalModel.textEditorModel, diffEditor.modifiedModel.textEditorModel);
152
144
  }
153
145
 
154
146
  dispose(): void {
155
- this.peekView?.dispose();
147
+ this.peekView.dispose();
156
148
  this.onDidCloseEmitter.dispose();
157
149
  }
158
150
 
159
151
  protected showCurrentChange(): void {
160
152
  this.updateHeading();
161
153
  const { previousRange, currentRange } = this.changes[this.index];
162
- this.peekView.show(Position.create(LineRange.getEndPosition(currentRange).line, 0),
163
- this.computeHeightInLines());
164
- this.diffEditorPromise.then(({ diffEditor }) => {
154
+ this.peekView.show(
155
+ Position.create(LineRange.getEndPosition(currentRange).line, 0),
156
+ this.computeHeightInLines()
157
+ ).then(async () => {
158
+ this.editor.focus();
159
+ const diffEditor = await this.diffEditorPromise;
160
+ if (diffEditor.isDisposed()) {
161
+ return;
162
+ }
165
163
  let startLine = LineRange.getStartPosition(currentRange).line;
166
164
  let endLine = LineRange.getEndPosition(currentRange).line;
167
165
  if (LineRange.isEmpty(currentRange)) { // the change is a removal
@@ -170,10 +168,9 @@ export class DirtyDiffWidget implements Disposable {
170
168
  --startLine;
171
169
  ++endLine;
172
170
  }
173
- diffEditor.revealLinesInCenter(startLine + 1, endLine + 1, // monaco line numbers are 1-based
171
+ diffEditor.diffEditor.revealLinesInCenter(startLine + 1, endLine + 1, // monaco line numbers are 1-based
174
172
  monaco.editor.ScrollType.Immediate);
175
173
  });
176
- this.editor.focus();
177
174
  }
178
175
 
179
176
  protected updateHeading(): void {
@@ -202,10 +199,6 @@ export class DirtyDiffWidget implements Disposable {
202
199
 
203
200
  return Math.min(changeHeightInLines + /* padding */ 8, Math.floor(editorHeightInLines / 3));
204
201
  }
205
-
206
- protected async checkCreated(): Promise<MonacoDiffEditor> {
207
- return this.diffEditorPromise;
208
- }
209
202
  }
210
203
 
211
204
  function cycle(index: number, offset: -1 | 1, length: number): number {
@@ -277,6 +270,7 @@ function applyChanges(changes: readonly Change[], original: monaco.editor.ITextM
277
270
 
278
271
  class DirtyDiffPeekView extends MonacoEditorPeekViewWidget {
279
272
 
273
+ private diffEditorPromise?: Promise<MonacoDiffEditor>;
280
274
  private diffEditor?: MonacoDiffEditor;
281
275
  private height?: number;
282
276
 
@@ -288,34 +282,27 @@ class DirtyDiffPeekView extends MonacoEditorPeekViewWidget {
288
282
  try {
289
283
  this.bodyElement = document.createElement('div');
290
284
  this.bodyElement.classList.add('body');
291
- const diffEditor = await this.widget.editorProvider.createEmbeddedDiffEditor(this.editor, this.bodyElement, this.widget.previousRevisionUri);
285
+ this.diffEditorPromise = this.widget.editorProvider.createEmbeddedDiffEditor(this.editor, this.bodyElement, this.widget.previousRevisionUri);
286
+ const diffEditor = await this.diffEditorPromise;
292
287
  this.diffEditor = diffEditor;
293
288
  this.toDispose.push(diffEditor);
294
289
  super.create();
295
- return new Promise(resolve => {
296
- // The diff computation is asynchronous and may complete before or after we register the listener.
297
- // This can happen when the file is already open in another editor, causing the model to be cached
298
- // and the diff to compute almost instantly. To handle this race condition, we check if the diff
299
- // is already available before waiting for onDidUpdateDiff.
300
- // setTimeout is needed because the non-side-by-side diff editor might still not have created the view zones;
301
- // otherwise, the first change shown might not be properly revealed in the diff editor.
302
- // See also https://github.com/microsoft/vscode/blob/b30900b56c4b3ca6c65d7ab92032651f4cb23f15/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts#L248
303
- if (diffEditor.diffEditor.getLineChanges()) {
304
- setTimeout(() => resolve(diffEditor));
305
- return;
306
- }
307
- const disposable = diffEditor.diffEditor.onDidUpdateDiff(() => setTimeout(() => {
308
- resolve(diffEditor);
309
- disposable.dispose();
310
- }));
311
- });
290
+ return diffEditor;
312
291
  } catch (e) {
313
292
  this.dispose();
314
293
  throw e;
315
294
  }
316
295
  }
317
296
 
318
- override show(rangeOrPos: Range | Position, heightInLines: number): void {
297
+ override async show(rangeOrPos: Range | Position, heightInLines: number): Promise<void> {
298
+ const { diffEditorPromise } = this;
299
+ if (!diffEditorPromise) {
300
+ throw new Error('Call the create() method first');
301
+ }
302
+ const diffEditor = await diffEditorPromise;
303
+ if (diffEditor.isDisposed()) {
304
+ return;
305
+ }
319
306
  const borderColor = this.getBorderColor();
320
307
  this.style({
321
308
  arrowColor: borderColor,
@@ -326,6 +313,32 @@ class DirtyDiffPeekView extends MonacoEditorPeekViewWidget {
326
313
  });
327
314
  this.updateActions();
328
315
  super.show(rangeOrPos, heightInLines);
316
+ diffEditor.handleVisibilityChanged(true);
317
+ return new Promise(resolve => {
318
+ // The diff computation is asynchronous and may complete before or after we register the listener.
319
+ // This can happen when the file is already open in another editor, causing the model to be cached
320
+ // and the diff to compute almost instantly. To handle this race condition, we check if the diff
321
+ // is already available before waiting for onDidUpdateDiff.
322
+ // setTimeout is needed because the non-side-by-side diff editor might still not have created the view zones;
323
+ // otherwise, the first change shown might not be properly revealed in the diff editor.
324
+ // See also https://github.com/microsoft/vscode/blob/b30900b56c4b3ca6c65d7ab92032651f4cb23f15/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts#L248
325
+ if (diffEditor.diffEditor.getLineChanges()) {
326
+ setTimeout(() => resolve());
327
+ return;
328
+ }
329
+ const disposable = diffEditor.diffEditor.onDidUpdateDiff(() => setTimeout(() => {
330
+ resolve();
331
+ disposable.dispose();
332
+ }));
333
+ });
334
+ }
335
+
336
+ override hide(): void {
337
+ const { diffEditor } = this;
338
+ if (diffEditor && !diffEditor.isDisposed()) {
339
+ diffEditor.handleVisibilityChanged(false);
340
+ }
341
+ super.hide();
329
342
  }
330
343
 
331
344
  private getBorderColor(): string {