@opensumi/ide-editor 2.26.0 → 2.26.1-next-1690192713.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.
@@ -37,6 +37,7 @@ export declare class EditorDocumentModel extends Disposable implements IEditorDo
37
37
  private reporter;
38
38
  preferences: PreferenceService;
39
39
  private readonly hashCalculateService;
40
+ private saveQueue;
40
41
  private monacoModel;
41
42
  _encoding: string;
42
43
  readonly readonly: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-document-model.d.ts","sourceRoot":"","sources":["../../../src/browser/doc-model/editor-document-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-document-model.d.ts","sourceRoot":"","sources":["../../../src/browser/doc-model/editor-document-model.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EAGV,SAAS,EACT,OAAO,EACP,MAAM,EAKN,iBAAiB,EAKjB,GAAG,EACJ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,GAAG,EAAqB,UAAU,EAAE,MAAM,mDAAmD,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAEL,oBAAoB,EACrB,MAAM,sEAAsE,CAAC;AAE9E,OAAO,EACL,WAAW,EAGZ,MAAM,yDAAyD,CAAC;AAGjE,OAAO,EAEL,2BAA2B,EAG3B,UAAU,EACV,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAiB,eAAe,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,+BAA+B,EAAY,MAAM,aAAa,CAAC;AACxE,OAAO,EAKL,oBAAoB,EACpB,mCAAmC,EAIpC,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sCAAsC;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iCAAiC,EAAE,CAAC;CAC9C;AAED,qBACa,mBAAoB,SAAQ,UAAW,YAAW,oBAAoB;aAyErD,GAAG,EAAE,GAAG;IAvEpC,eAAe,EAAE,mCAAmC,CAAC;IAGrD,OAAO,EAAE,+BAA+B,CAAC;IAGzC,cAAc,EAAE,eAAe,CAAC;IAGhC,aAAa,EAAE,2BAA2B,CAAC;IAE3C,iBAAiB,EAAE,iBAAiB,CAAC;IAGrC,cAAc,EAAE,eAAe,CAAC;IAGhC,QAAQ,EAAE,SAAS,CAAC;IAGpB,MAAM,EAAE,OAAO,CAAC;IAGhB,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,QAAQ,CAAmB;IAGnC,WAAW,EAAE,iBAAiB,CAAC;IAG/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAwB;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC,OAAO,CAAC,WAAW,CAAa;IAEzB,SAAS,SAAU;IAE1B,SAAgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,SAAgB,OAAO,EAAE,OAAO,CAAS;IAEzC,SAAgB,WAAW,EAAE,OAAO,CAAS;IAE7C,SAAgB,aAAa,EAAE,OAAO,CAAS;IAE/C,SAAgB,gBAAgB,EAAE,OAAO,CAAS;IAElD,OAAO,CAAC,iBAAiB,CAA0B;IAEnD,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,sBAAsB,CAA0B;IAExD,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,QAAQ,CAAC,mBAAmB,mDAAmC;gBAEnC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sCAA2C;IA4C3G,aAAa,CAAC,OAAO,KAAA;IAcrB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,UAAU;IAwBlB,qBAAqB,CAAC,OAAO,KAAA;IASvB,cAAc,CAAC,QAAQ,EAAE,MAAM;IAkBrC,IAAI,QAAQ,WAEX;IAED,IAAI,GAAG,CAAC,GAAG,KAAA,EAUV;IAED,IAAI,GAAG,QAEN;IAED,IAAI,KAAK,YAWR;IAED,IAAI,UAAU,CAAC,UAAU,QAAA,EAQxB;IAED,IAAI,UAAU,WAEb;IAED,IAAI,EAAE,WAEL;IAED,cAAc,IAAI,UAAU;IAItB,IAAI,CAAC,KAAK,UAAQ,EAAE,MAAM,GAAE,UAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;YA2DrE,cAAc;IAoBtB,QAAQ;IAkBd,UAAU,CAAC,SAAS,EAAE,MAAM;IAKtB,MAAM;IAWN,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO;IAUhC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM;IAQtB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,UAAQ;IAmB5D;;OAEG;WACW,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,GAAG,oBAAoB,EAAE;IA6C/F,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B,OAAO,CAAC,MAAM,CAAC,aAAa;IAiB5B,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAG9B;IAED,IAAI,WAAW,IALU,MAAM,CAO9B;IAED,IAAI,cAAc,WAKjB;IAED,IAAI,qBAAqB,cAgBxB;IAED,iBAAiB,IAAI,MAAM;IAO3B,OAAO,CAAC,iBAAiB;cAsCT,YAAY,CAAC,MAAM,EAAE,UAAU;CA6BhD"}
@@ -24,6 +24,7 @@ let EditorDocumentModel = EditorDocumentModel_1 = class EditorDocumentModel exte
24
24
  constructor(uri, content, options = {}) {
25
25
  super();
26
26
  this.uri = uri;
27
+ this.saveQueue = new ide_core_browser_1.Throttler();
27
28
  this._encoding = 'utf8';
28
29
  this.readonly = false;
29
30
  this.savable = false;
@@ -204,60 +205,63 @@ let EditorDocumentModel = EditorDocumentModel_1 = class EditorDocumentModel exte
204
205
  return this.monacoModel;
205
206
  }
206
207
  async save(force = false, reason = common_1.SaveReason.Manual) {
207
- await this.formatOnSave(reason);
208
- // 发送willSave并等待完成
209
- await this.eventBus.fireAndAwait(new types_3.EditorDocumentModelWillSaveEvent({
210
- uri: this.uri,
211
- reason,
212
- language: this.languageId,
213
- }));
214
- if (!this.editorPreferences['editor.askIfDiff']) {
215
- force = true;
216
- }
217
- if (!this.dirty) {
218
- return false;
219
- }
220
- const versionId = this.monacoModel.getVersionId();
221
- const lastSavingTask = this.savingTasks[this.savingTasks.length - 1];
222
- if (lastSavingTask && lastSavingTask.versionId === versionId) {
223
- lastSavingTask.cancel();
224
- const task = this.savingTasks.pop();
225
- task === null || task === void 0 ? void 0 : task.dispose();
226
- }
227
- const task = new save_task_1.SaveTask(this.uri, versionId, this.monacoModel.getAlternativeVersionId(), this.getText(), force);
228
- this.savingTasks.push(task);
229
- if (this.savingTasks.length > 0) {
230
- this.initSave();
231
- }
232
- const res = await task.finished;
233
- if (res.state === ide_core_browser_1.SaveTaskResponseState.SUCCESS) {
234
- this.monacoModel.pushStackElement();
235
- return true;
236
- }
237
- else if (res.state === ide_core_browser_1.SaveTaskResponseState.ERROR) {
238
- if (res.errorMessage !== "cancel" /* SaveTaskErrorCause.CANCEL */) {
239
- this.logger.error(res.errorMessage);
240
- this.messageService.error((0, ide_core_browser_1.localize)('doc.saveError.failed') + '\n' + res.errorMessage);
208
+ const doSave = async (force = false, reason = common_1.SaveReason.Manual) => {
209
+ await this.formatOnSave(reason);
210
+ // 发送willSave并等待完成
211
+ await this.eventBus.fireAndAwait(new types_3.EditorDocumentModelWillSaveEvent({
212
+ uri: this.uri,
213
+ reason,
214
+ language: this.languageId,
215
+ }));
216
+ if (!this.editorPreferences['editor.askIfDiff']) {
217
+ force = true;
241
218
  }
242
- return false;
243
- }
244
- else if (res.state === ide_core_browser_1.SaveTaskResponseState.DIFF) {
245
- const diffAndSave = (0, ide_core_browser_1.localize)('doc.saveError.diffAndSave');
246
- const overwrite = (0, ide_core_browser_1.localize)('doc.saveError.overwrite');
247
- this.messageService
248
- .error((0, ide_core_browser_1.formatLocalize)('doc.saveError.diff', this.uri.toString()), [diffAndSave, overwrite])
249
- .then((res) => {
250
- if (res === diffAndSave) {
251
- this.compareAndSave();
252
- }
253
- else if (res === overwrite) {
254
- this.save(true);
219
+ if (!this.dirty) {
220
+ return false;
221
+ }
222
+ const versionId = this.monacoModel.getVersionId();
223
+ const lastSavingTask = this.savingTasks[this.savingTasks.length - 1];
224
+ if (lastSavingTask && lastSavingTask.versionId === versionId) {
225
+ lastSavingTask.cancel();
226
+ const task = this.savingTasks.pop();
227
+ task === null || task === void 0 ? void 0 : task.dispose();
228
+ }
229
+ const task = new save_task_1.SaveTask(this.uri, versionId, this.monacoModel.getAlternativeVersionId(), this.getText(), force);
230
+ this.savingTasks.push(task);
231
+ if (this.savingTasks.length > 0) {
232
+ this.initSave();
233
+ }
234
+ const res = await task.finished;
235
+ if (res.state === ide_core_browser_1.SaveTaskResponseState.SUCCESS) {
236
+ this.monacoModel.pushStackElement();
237
+ return true;
238
+ }
239
+ else if (res.state === ide_core_browser_1.SaveTaskResponseState.ERROR) {
240
+ if (res.errorMessage !== "cancel" /* SaveTaskErrorCause.CANCEL */) {
241
+ this.logger.error(res.errorMessage);
242
+ this.messageService.error((0, ide_core_browser_1.localize)('doc.saveError.failed') + '\n' + res.errorMessage);
255
243
  }
256
- });
257
- this.logger.error('The file cannot be saved, the version is inconsistent with the disk');
244
+ return false;
245
+ }
246
+ else if (res.state === ide_core_browser_1.SaveTaskResponseState.DIFF) {
247
+ const diffAndSave = (0, ide_core_browser_1.localize)('doc.saveError.diffAndSave');
248
+ const overwrite = (0, ide_core_browser_1.localize)('doc.saveError.overwrite');
249
+ this.messageService
250
+ .error((0, ide_core_browser_1.formatLocalize)('doc.saveError.diff', this.uri.toString()), [diffAndSave, overwrite])
251
+ .then((res) => {
252
+ if (res === diffAndSave) {
253
+ this.compareAndSave();
254
+ }
255
+ else if (res === overwrite) {
256
+ doSave(true);
257
+ }
258
+ });
259
+ this.logger.error('The file cannot be saved, the version is inconsistent with the disk');
260
+ return false;
261
+ }
258
262
  return false;
259
- }
260
- return false;
263
+ };
264
+ return this.saveQueue.queue(doSave);
261
265
  }
262
266
  async compareAndSave() {
263
267
  const originalUri = ide_core_browser_1.URI.from({
@@ -1 +1 @@
1
- {"version":3,"file":"editor-document-model.js","sourceRoot":"","sources":["../../../src/browser/doc-model/editor-document-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-document-model.js","sourceRoot":"","sources":["../../../src/browser/doc-model/editor-document-model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-editor",
3
- "version": "2.26.0",
3
+ "version": "2.26.1-next-1690192713.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -17,21 +17,21 @@
17
17
  "url": "git@github.com:opensumi/core.git"
18
18
  },
19
19
  "dependencies": {
20
- "@opensumi/ide-core-common": "2.26.0",
21
- "@opensumi/ide-core-node": "2.26.0",
22
- "@opensumi/ide-file-service": "2.26.0",
23
- "@opensumi/ide-monaco": "2.26.0",
24
- "@opensumi/ide-utils": "2.26.0",
20
+ "@opensumi/ide-core-common": "2.26.1-next-1690192713.0",
21
+ "@opensumi/ide-core-node": "2.26.1-next-1690192713.0",
22
+ "@opensumi/ide-file-service": "2.26.1-next-1690192713.0",
23
+ "@opensumi/ide-monaco": "2.26.1-next-1690192713.0",
24
+ "@opensumi/ide-utils": "2.26.1-next-1690192713.0",
25
25
  "vscode-oniguruma": "1.5.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@opensumi/ide-components": "2.26.0",
29
- "@opensumi/ide-core-browser": "2.26.0",
28
+ "@opensumi/ide-components": "2.26.1-next-1690192713.0",
29
+ "@opensumi/ide-core-browser": "2.26.1-next-1690192713.0",
30
30
  "@opensumi/ide-dev-tool": "1.3.1",
31
- "@opensumi/ide-overlay": "2.26.0",
32
- "@opensumi/ide-quick-open": "2.26.0",
33
- "@opensumi/ide-theme": "2.26.0",
34
- "@opensumi/ide-workspace": "2.26.0"
31
+ "@opensumi/ide-overlay": "2.26.1-next-1690192713.0",
32
+ "@opensumi/ide-quick-open": "2.26.1-next-1690192713.0",
33
+ "@opensumi/ide-theme": "2.26.1-next-1690192713.0",
34
+ "@opensumi/ide-workspace": "2.26.1-next-1690192713.0"
35
35
  },
36
- "gitHead": "ac1e2c7dbb8e57442142633aee587c454d5925c3"
36
+ "gitHead": "4451cfb5efb1d198c7a6e5e9e1792ad114e80ba1"
37
37
  }
@@ -17,6 +17,7 @@ import {
17
17
  REPORT_NAME,
18
18
  SaveTaskErrorCause,
19
19
  SaveTaskResponseState,
20
+ Throttler,
20
21
  URI,
21
22
  } from '@opensumi/ide-core-browser';
22
23
  import { IHashCalculateService } from '@opensumi/ide-core-common/lib/hash-calculate/hash-calculate';
@@ -115,6 +116,8 @@ export class EditorDocumentModel extends Disposable implements IEditorDocumentMo
115
116
  @Autowired(IHashCalculateService)
116
117
  private readonly hashCalculateService: IHashCalculateService;
117
118
 
119
+ private saveQueue = new Throttler();
120
+
118
121
  private monacoModel: ITextModel;
119
122
 
120
123
  public _encoding = 'utf8';
@@ -356,59 +359,62 @@ export class EditorDocumentModel extends Disposable implements IEditorDocumentMo
356
359
  }
357
360
 
358
361
  async save(force = false, reason: SaveReason = SaveReason.Manual): Promise<boolean> {
359
- await this.formatOnSave(reason);
360
- // 发送willSave并等待完成
361
- await this.eventBus.fireAndAwait(
362
- new EditorDocumentModelWillSaveEvent({
363
- uri: this.uri,
364
- reason,
365
- language: this.languageId,
366
- }),
367
- );
368
- if (!this.editorPreferences['editor.askIfDiff']) {
369
- force = true;
370
- }
371
- if (!this.dirty) {
372
- return false;
373
- }
374
- const versionId = this.monacoModel.getVersionId();
375
- const lastSavingTask = this.savingTasks[this.savingTasks.length - 1];
376
- if (lastSavingTask && lastSavingTask.versionId === versionId) {
377
- lastSavingTask.cancel();
378
- const task = this.savingTasks.pop();
379
- task?.dispose();
380
- }
381
- const task = new SaveTask(this.uri, versionId, this.monacoModel.getAlternativeVersionId(), this.getText(), force);
382
- this.savingTasks.push(task);
383
- if (this.savingTasks.length > 0) {
384
- this.initSave();
385
- }
386
- const res = await task.finished;
387
- if (res.state === SaveTaskResponseState.SUCCESS) {
388
- this.monacoModel.pushStackElement();
389
- return true;
390
- } else if (res.state === SaveTaskResponseState.ERROR) {
391
- if (res.errorMessage !== SaveTaskErrorCause.CANCEL) {
392
- this.logger.error(res.errorMessage);
393
- this.messageService.error(localize('doc.saveError.failed') + '\n' + res.errorMessage);
362
+ const doSave = async (force = false, reason: SaveReason = SaveReason.Manual) => {
363
+ await this.formatOnSave(reason);
364
+ // 发送willSave并等待完成
365
+ await this.eventBus.fireAndAwait(
366
+ new EditorDocumentModelWillSaveEvent({
367
+ uri: this.uri,
368
+ reason,
369
+ language: this.languageId,
370
+ }),
371
+ );
372
+ if (!this.editorPreferences['editor.askIfDiff']) {
373
+ force = true;
374
+ }
375
+ if (!this.dirty) {
376
+ return false;
377
+ }
378
+ const versionId = this.monacoModel.getVersionId();
379
+ const lastSavingTask = this.savingTasks[this.savingTasks.length - 1];
380
+ if (lastSavingTask && lastSavingTask.versionId === versionId) {
381
+ lastSavingTask.cancel();
382
+ const task = this.savingTasks.pop();
383
+ task?.dispose();
384
+ }
385
+ const task = new SaveTask(this.uri, versionId, this.monacoModel.getAlternativeVersionId(), this.getText(), force);
386
+ this.savingTasks.push(task);
387
+ if (this.savingTasks.length > 0) {
388
+ this.initSave();
389
+ }
390
+ const res = await task.finished;
391
+ if (res.state === SaveTaskResponseState.SUCCESS) {
392
+ this.monacoModel.pushStackElement();
393
+ return true;
394
+ } else if (res.state === SaveTaskResponseState.ERROR) {
395
+ if (res.errorMessage !== SaveTaskErrorCause.CANCEL) {
396
+ this.logger.error(res.errorMessage);
397
+ this.messageService.error(localize('doc.saveError.failed') + '\n' + res.errorMessage);
398
+ }
399
+ return false;
400
+ } else if (res.state === SaveTaskResponseState.DIFF) {
401
+ const diffAndSave = localize('doc.saveError.diffAndSave');
402
+ const overwrite = localize('doc.saveError.overwrite');
403
+ this.messageService
404
+ .error(formatLocalize('doc.saveError.diff', this.uri.toString()), [diffAndSave, overwrite])
405
+ .then((res) => {
406
+ if (res === diffAndSave) {
407
+ this.compareAndSave();
408
+ } else if (res === overwrite) {
409
+ doSave(true);
410
+ }
411
+ });
412
+ this.logger.error('The file cannot be saved, the version is inconsistent with the disk');
413
+ return false;
394
414
  }
395
415
  return false;
396
- } else if (res.state === SaveTaskResponseState.DIFF) {
397
- const diffAndSave = localize('doc.saveError.diffAndSave');
398
- const overwrite = localize('doc.saveError.overwrite');
399
- this.messageService
400
- .error(formatLocalize('doc.saveError.diff', this.uri.toString()), [diffAndSave, overwrite])
401
- .then((res) => {
402
- if (res === diffAndSave) {
403
- this.compareAndSave();
404
- } else if (res === overwrite) {
405
- this.save(true);
406
- }
407
- });
408
- this.logger.error('The file cannot be saved, the version is inconsistent with the disk');
409
- return false;
410
- }
411
- return false;
416
+ };
417
+ return this.saveQueue.queue(doSave);
412
418
  }
413
419
 
414
420
  private async compareAndSave() {