@codingame/monaco-vscode-model-service-override 28.4.1 → 29.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-model-service-override",
3
- "version": "28.4.1",
3
+ "version": "29.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - model service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "28.4.1"
18
+ "@codingame/monaco-vscode-api": "29.0.0"
19
19
  },
20
20
  "main": "index.js",
21
21
  "module": "index.js",
@@ -25,24 +25,15 @@ let ResourceModelCollection = class ResourceModelCollection extends ReferenceCol
25
25
  this.fileService = fileService;
26
26
  this.modelService = modelService;
27
27
  this.providers = ( new Map());
28
- this.modelsToDispose = ( new Set());
28
+ this.modelsToDispose = ( new Map());
29
29
  }
30
30
  createReferencedObject(key) {
31
31
  return this.doCreateReferencedObject(key);
32
32
  }
33
33
  async doCreateReferencedObject(key, skipActivateProvider) {
34
- this.modelsToDispose.delete(key);
35
34
  const resource = ( URI.parse(key));
36
- if (resource.scheme === Schemas.inMemory) {
37
- const cachedModel = this.modelService.getModel(resource);
38
- if (!cachedModel) {
39
- throw ( new Error(`Unable to resolve inMemory resource ${key}`));
40
- }
41
- const model = this.instantiationService.createInstance(TextResourceEditorModel, resource);
42
- if (this.ensureResolvedModel(model, key)) {
43
- return model;
44
- }
45
- }
35
+ const pendingModel = this.modelsToDispose.get(key);
36
+ this.modelsToDispose.delete(key);
46
37
  if (resource.scheme === Schemas.untitled) {
47
38
  const model = await this.textFileService.untitled.resolve({
48
39
  untitledResource: resource
@@ -59,9 +50,17 @@ let ResourceModelCollection = class ResourceModelCollection extends ReferenceCol
59
50
  return model;
60
51
  }
61
52
  }
62
- if (( this.providers.has(resource.scheme))) {
63
- await this.resolveTextModelContent(key);
64
- const model = this.instantiationService.createInstance(TextResourceEditorModel, resource);
53
+ if (resource.scheme === Schemas.inMemory || ( this.providers.has(resource.scheme))) {
54
+ await this.ensureResolvedTextModelContent(resource);
55
+ let model = undefined;
56
+ if (pendingModel) {
57
+ try {
58
+ model = await pendingModel;
59
+ } catch {}
60
+ }
61
+ if (!model) {
62
+ model = this.instantiationService.createInstance(TextResourceEditorModel, resource);
63
+ }
65
64
  if (this.ensureResolvedModel(model, key)) {
66
65
  return model;
67
66
  }
@@ -79,11 +78,7 @@ let ResourceModelCollection = class ResourceModelCollection extends ReferenceCol
79
78
  throw ( new Error(`Unable to resolve resource ${key}`));
80
79
  }
81
80
  destroyReferencedObject(key, modelPromise) {
82
- const resource = ( URI.parse(key));
83
- if (resource.scheme === Schemas.inMemory) {
84
- return;
85
- }
86
- this.modelsToDispose.add(key);
81
+ this.modelsToDispose.set(key, modelPromise);
87
82
  (async () => {
88
83
  try {
89
84
  const model = await modelPromise;
@@ -129,16 +124,19 @@ let ResourceModelCollection = class ResourceModelCollection extends ReferenceCol
129
124
  hasTextModelContentProvider(scheme) {
130
125
  return this.providers.get(scheme) !== undefined;
131
126
  }
132
- async resolveTextModelContent(key) {
133
- const resource = ( URI.parse(key));
127
+ async ensureResolvedTextModelContent(resource) {
128
+ if (resource.scheme === Schemas.inMemory) {
129
+ if (this.modelService.getModel(resource)) {
130
+ return;
131
+ }
132
+ }
134
133
  const providersForScheme = this.providers.get(resource.scheme) || [];
135
134
  for (const provider of providersForScheme) {
136
- const value = await provider.provideTextContent(resource);
137
- if (value) {
138
- return value;
135
+ if (await provider.provideTextContent(resource)) {
136
+ return;
139
137
  }
140
138
  }
141
- throw ( new Error(`Unable to resolve text model content for resource ${key}`));
139
+ throw ( new Error(`Unable to resolve text model content for resource ${( resource.toString())}`));
142
140
  }
143
141
  };
144
142
  ResourceModelCollection = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, ITextFileService)), ( __param(2, IFileService)), ( __param(3, IModelService))], ResourceModelCollection));