@volar/monaco 1.4.0-alpha.0 → 1.4.0-alpha.10
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/out/editor.js +55 -75
- package/out/index.js +1 -0
- package/out/languages.js +30 -38
- package/out/utils/markers.js +1 -0
- package/out/utils/monaco2protocol.js +1 -0
- package/out/utils/protocol2monaco.js +29 -23
- package/out/utils/provider.js +311 -352
- package/out/worker.d.ts +1 -1
- package/out/worker.js +42 -68
- package/package.json +3 -4
package/out/editor.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
1
|
+
"use strict";
|
|
10
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
3
|
exports.editor = void 0;
|
|
12
|
-
const language_service_1 = require("@volar/language-service");
|
|
13
4
|
const monaco_editor_core_1 = require("monaco-editor-core");
|
|
14
5
|
const markers_1 = require("./utils/markers");
|
|
15
6
|
const protocol2monaco = require("./utils/protocol2monaco");
|
|
@@ -34,11 +25,10 @@ var editor;
|
|
|
34
25
|
}
|
|
35
26
|
return { dispose: () => disposables.forEach((d) => d.dispose()) };
|
|
36
27
|
function stopHostingMarkers(model) {
|
|
37
|
-
var _a;
|
|
38
28
|
editor.setModelMarkers(model, markersOwn, []);
|
|
39
29
|
const key = model.uri.toString();
|
|
40
30
|
if (listener.has(key)) {
|
|
41
|
-
|
|
31
|
+
listener.get(key)?.dispose();
|
|
42
32
|
listener.delete(key);
|
|
43
33
|
}
|
|
44
34
|
}
|
|
@@ -68,29 +58,25 @@ var editor;
|
|
|
68
58
|
});
|
|
69
59
|
doValidation(model);
|
|
70
60
|
}
|
|
71
|
-
function doValidation(model) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const marker = protocol2monaco.asMarkerData(error);
|
|
89
|
-
markers_1.markers.set(marker, error);
|
|
90
|
-
return marker;
|
|
91
|
-
});
|
|
92
|
-
editor.setModelMarkers(model, markersOwn, result);
|
|
61
|
+
async function doValidation(model) {
|
|
62
|
+
if (model.isDisposed()) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!model.isAttachedToEditor()) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const version = model.getVersionId();
|
|
69
|
+
const languageService = await worker.withSyncedResources(getSyncUris());
|
|
70
|
+
const diagnostics = await languageService.doValidation(model.uri.toString(), 'all');
|
|
71
|
+
if (model.getVersionId() !== version) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const result = diagnostics.map(error => {
|
|
75
|
+
const marker = protocol2monaco.asMarkerData(error);
|
|
76
|
+
markers_1.markers.set(marker, error);
|
|
77
|
+
return marker;
|
|
93
78
|
});
|
|
79
|
+
editor.setModelMarkers(model, markersOwn, result);
|
|
94
80
|
}
|
|
95
81
|
}
|
|
96
82
|
editor_1.activateMarkers = activateMarkers;
|
|
@@ -114,9 +100,8 @@ var editor;
|
|
|
114
100
|
}
|
|
115
101
|
return { dispose: () => disposables.forEach((d) => d.dispose()) };
|
|
116
102
|
function stopHostingAutoInsertion(model) {
|
|
117
|
-
var _a;
|
|
118
103
|
if (listener.has(model)) {
|
|
119
|
-
|
|
104
|
+
listener.get(model)?.dispose();
|
|
120
105
|
listener.delete(model);
|
|
121
106
|
}
|
|
122
107
|
}
|
|
@@ -138,47 +123,42 @@ var editor;
|
|
|
138
123
|
doAutoInsert(model, lastChange);
|
|
139
124
|
}));
|
|
140
125
|
}
|
|
141
|
-
function doAutoInsert(model, lastChange) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
(()
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
126
|
+
async function doAutoInsert(model, lastChange) {
|
|
127
|
+
if (timeout) {
|
|
128
|
+
clearTimeout(timeout);
|
|
129
|
+
timeout = undefined;
|
|
130
|
+
}
|
|
131
|
+
const version = model.getVersionId();
|
|
132
|
+
timeout = setTimeout(() => {
|
|
133
|
+
(async () => {
|
|
134
|
+
if (model.getVersionId() !== version) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const position = new monaco_editor_core_1.Position(lastChange.range.startLineNumber, lastChange.range.startColumn + lastChange.text.length);
|
|
138
|
+
const languageService = await worker.withSyncedResources(getSyncUris());
|
|
139
|
+
const edit = await languageService.doAutoInsert(model.uri.toString(), monaco2protocol.asPosition(position), {
|
|
140
|
+
lastChange: {
|
|
141
|
+
range: monaco2protocol.asRange(lastChange.range),
|
|
142
|
+
rangeLength: lastChange.rangeLength,
|
|
143
|
+
text: lastChange.text,
|
|
144
|
+
rangeOffset: lastChange.rangeOffset,
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
if (model.getVersionId() !== version) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const codeEditor = editor.getEditors().find((e) => e.getModel() === model);
|
|
151
|
+
if (codeEditor && edit && model.getVersionId() === version) {
|
|
152
|
+
if (typeof edit === 'string') {
|
|
153
|
+
codeEditor?.getContribution('snippetController2')?.insert(edit);
|
|
153
154
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const edit = yield languageService.doAutoInsert(model.uri.toString(), monaco2protocol.asPosition(position), {
|
|
157
|
-
lastChange: {
|
|
158
|
-
range: monaco2protocol.asRange(lastChange.range),
|
|
159
|
-
rangeLength: lastChange.rangeLength,
|
|
160
|
-
text: lastChange.text,
|
|
161
|
-
rangeOffset: lastChange.rangeOffset,
|
|
162
|
-
},
|
|
163
|
-
}, {
|
|
164
|
-
get isCancellationRequested() {
|
|
165
|
-
return model.getVersionId() !== version;
|
|
166
|
-
},
|
|
167
|
-
onCancellationRequested: language_service_1.Event.None,
|
|
168
|
-
});
|
|
169
|
-
const codeEditor = editor.getEditors().find((e) => e.getModel() === model);
|
|
170
|
-
if (codeEditor && edit && model.getVersionId() === version) {
|
|
171
|
-
if (typeof edit === 'string') {
|
|
172
|
-
(_a = codeEditor === null || codeEditor === void 0 ? void 0 : codeEditor.getContribution('snippetController2')) === null || _a === void 0 ? void 0 : _a.insert(edit);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
model.pushEditOperations([], [protocol2monaco.asTextEdit(edit)], () => []);
|
|
176
|
-
}
|
|
155
|
+
else {
|
|
156
|
+
model.pushEditOperations([], [protocol2monaco.asTextEdit(edit)], () => []);
|
|
177
157
|
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
});
|
|
158
|
+
}
|
|
159
|
+
})();
|
|
160
|
+
timeout = undefined;
|
|
161
|
+
}, 100);
|
|
182
162
|
}
|
|
183
163
|
}
|
|
184
164
|
editor_1.activateAutoInsertion = activateAutoInsertion;
|
package/out/index.js
CHANGED
package/out/languages.js
CHANGED
|
@@ -1,46 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
1
|
+
"use strict";
|
|
10
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
3
|
exports.languages = void 0;
|
|
12
4
|
const provider_1 = require("./utils/provider");
|
|
13
5
|
var languages;
|
|
14
6
|
(function (languages_1) {
|
|
15
|
-
function registerProvides(worker, language, getSyncUris, languages) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
7
|
+
async function registerProvides(worker, language, getSyncUris, languages) {
|
|
8
|
+
const provider = await (0, provider_1.createLanguageFeaturesProvider)(worker, getSyncUris);
|
|
9
|
+
const disposables = [
|
|
10
|
+
languages.registerHoverProvider(language, provider),
|
|
11
|
+
languages.registerReferenceProvider(language, provider),
|
|
12
|
+
languages.registerRenameProvider(language, provider),
|
|
13
|
+
languages.registerSignatureHelpProvider(language, provider),
|
|
14
|
+
languages.registerDocumentSymbolProvider(language, provider),
|
|
15
|
+
languages.registerDocumentHighlightProvider(language, provider),
|
|
16
|
+
languages.registerLinkedEditingRangeProvider(language, provider),
|
|
17
|
+
languages.registerDefinitionProvider(language, provider),
|
|
18
|
+
languages.registerImplementationProvider(language, provider),
|
|
19
|
+
languages.registerTypeDefinitionProvider(language, provider),
|
|
20
|
+
languages.registerCodeLensProvider(language, provider),
|
|
21
|
+
languages.registerCodeActionProvider(language, provider),
|
|
22
|
+
languages.registerDocumentFormattingEditProvider(language, provider),
|
|
23
|
+
languages.registerDocumentRangeFormattingEditProvider(language, provider),
|
|
24
|
+
languages.registerOnTypeFormattingEditProvider(language, provider),
|
|
25
|
+
languages.registerLinkProvider(language, provider),
|
|
26
|
+
languages.registerCompletionItemProvider(language, provider),
|
|
27
|
+
languages.registerColorProvider(language, provider),
|
|
28
|
+
languages.registerFoldingRangeProvider(language, provider),
|
|
29
|
+
languages.registerDeclarationProvider(language, provider),
|
|
30
|
+
languages.registerSelectionRangeProvider(language, provider),
|
|
31
|
+
languages.registerInlayHintsProvider(language, provider),
|
|
32
|
+
languages.registerDocumentSemanticTokensProvider(language, provider),
|
|
33
|
+
languages.registerDocumentRangeSemanticTokensProvider(language, provider),
|
|
34
|
+
];
|
|
35
|
+
return { dispose: () => disposables.forEach((d) => d.dispose()) };
|
|
44
36
|
}
|
|
45
37
|
languages_1.registerProvides = registerProvides;
|
|
46
38
|
})(languages = exports.languages || (exports.languages = {}));
|
package/out/utils/markers.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
exports.asFormattingOptions = exports.asTriggerKind = exports.asMarkdownString = exports.asParameterInformation = exports.asSignatureInformation = exports.asSignatureHelp = exports.asSignatureHelpTriggerKind = exports.asSignatureHelpContext = exports.asCompletionContext = exports.asRange = exports.asPosition = void 0;
|
|
3
4
|
const monaco_editor_core_1 = require("monaco-editor-core");
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
exports.asPosition = exports.asInlayHintLabelPart = exports.asInlayHintLabel = exports.asInlayHintKind = exports.asInlayHint = exports.asSelectionRange = exports.asFoldingRange = exports.asColorPresentation = exports.asColorInformation = exports.asLink = exports.asCodeAction = exports.asCodeLens = exports.asDocumentHighlightKind = exports.asDocumentHighlight = exports.asSymbolKind = exports.asSymbolTag = exports.asDocumentSymbol = exports.asWorkspaceEdit = exports.asMarkerSeverity = exports.asRelatedInformation = exports.asMarkerTag = exports.asMarkerData = exports.asParameterInformation = exports.asSignatureInformation = exports.asSignatureHelp = exports.asUri = exports.asLocation = exports.asMarkdownString = exports.asHover = exports.asRange = exports.asCompletionItemRange = exports.asTextEdit = exports.asCommand = exports.asCompletionItem = exports.asCompletionItemKind = exports.asCompletionList = void 0;
|
|
3
4
|
const monaco_editor_core_1 = require("monaco-editor-core");
|
|
@@ -67,7 +68,6 @@ function asCompletionItemKind(kind) {
|
|
|
67
68
|
}
|
|
68
69
|
exports.asCompletionItemKind = asCompletionItemKind;
|
|
69
70
|
function asCompletionItem(item, range) {
|
|
70
|
-
var _a, _b, _c, _d;
|
|
71
71
|
return {
|
|
72
72
|
label: item.label,
|
|
73
73
|
kind: asCompletionItemKind(item.kind),
|
|
@@ -77,11 +77,11 @@ function asCompletionItem(item, range) {
|
|
|
77
77
|
sortText: item.sortText,
|
|
78
78
|
filterText: item.filterText,
|
|
79
79
|
preselect: item.preselect,
|
|
80
|
-
insertText:
|
|
80
|
+
insertText: item.textEdit?.newText ?? item.insertText ?? item.label,
|
|
81
81
|
insertTextRules: monaco_editor_core_1.languages.CompletionItemInsertTextRule.InsertAsSnippet,
|
|
82
82
|
range: item.textEdit ? asCompletionItemRange(item.textEdit) : asRange(range),
|
|
83
83
|
commitCharacters: item.commitCharacters,
|
|
84
|
-
additionalTextEdits:
|
|
84
|
+
additionalTextEdits: item.additionalTextEdits?.map(asTextEdit),
|
|
85
85
|
command: item.command ? asCommand(item.command) : undefined,
|
|
86
86
|
};
|
|
87
87
|
}
|
|
@@ -160,11 +160,10 @@ function asUri(uri) {
|
|
|
160
160
|
}
|
|
161
161
|
exports.asUri = asUri;
|
|
162
162
|
function asSignatureHelp(signatureHelp) {
|
|
163
|
-
var _a, _b;
|
|
164
163
|
return {
|
|
165
164
|
signatures: signatureHelp.signatures.map(asSignatureInformation),
|
|
166
|
-
activeSignature:
|
|
167
|
-
activeParameter:
|
|
165
|
+
activeSignature: signatureHelp.activeSignature ?? 0,
|
|
166
|
+
activeParameter: signatureHelp.activeParameter ?? 0,
|
|
168
167
|
};
|
|
169
168
|
}
|
|
170
169
|
exports.asSignatureHelp = asSignatureHelp;
|
|
@@ -187,8 +186,15 @@ function asParameterInformation(parameterInformation) {
|
|
|
187
186
|
}
|
|
188
187
|
exports.asParameterInformation = asParameterInformation;
|
|
189
188
|
function asMarkerData(diagnostic) {
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
return {
|
|
190
|
+
code: diagnostic.code?.toString(),
|
|
191
|
+
severity: asMarkerSeverity(diagnostic.severity),
|
|
192
|
+
message: diagnostic.message,
|
|
193
|
+
source: diagnostic.source,
|
|
194
|
+
...asRange(diagnostic.range),
|
|
195
|
+
relatedInformation: diagnostic.relatedInformation?.map(asRelatedInformation),
|
|
196
|
+
tags: diagnostic.tags?.map(asMarkerTag),
|
|
197
|
+
};
|
|
192
198
|
}
|
|
193
199
|
exports.asMarkerData = asMarkerData;
|
|
194
200
|
function asMarkerTag(tag) {
|
|
@@ -201,7 +207,11 @@ function asMarkerTag(tag) {
|
|
|
201
207
|
}
|
|
202
208
|
exports.asMarkerTag = asMarkerTag;
|
|
203
209
|
function asRelatedInformation(relatedInformation) {
|
|
204
|
-
return
|
|
210
|
+
return {
|
|
211
|
+
resource: asUri(relatedInformation.location.uri),
|
|
212
|
+
message: relatedInformation.message,
|
|
213
|
+
...asRange(relatedInformation.location.range),
|
|
214
|
+
};
|
|
205
215
|
}
|
|
206
216
|
exports.asRelatedInformation = asRelatedInformation;
|
|
207
217
|
function asMarkerSeverity(severity) {
|
|
@@ -220,7 +230,6 @@ function asMarkerSeverity(severity) {
|
|
|
220
230
|
}
|
|
221
231
|
exports.asMarkerSeverity = asMarkerSeverity;
|
|
222
232
|
function asWorkspaceEdit(workspaceEdit) {
|
|
223
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
224
233
|
const result = {
|
|
225
234
|
edits: [],
|
|
226
235
|
};
|
|
@@ -243,7 +252,7 @@ function asWorkspaceEdit(workspaceEdit) {
|
|
|
243
252
|
result.edits.push({
|
|
244
253
|
resource: asUri(documentChange.textDocument.uri),
|
|
245
254
|
textEdit: asTextEdit(edit),
|
|
246
|
-
versionId:
|
|
255
|
+
versionId: documentChange.textDocument.version ?? undefined,
|
|
247
256
|
});
|
|
248
257
|
}
|
|
249
258
|
}
|
|
@@ -251,8 +260,8 @@ function asWorkspaceEdit(workspaceEdit) {
|
|
|
251
260
|
result.edits.push({
|
|
252
261
|
newResource: asUri(documentChange.uri),
|
|
253
262
|
options: {
|
|
254
|
-
overwrite:
|
|
255
|
-
ignoreIfExists:
|
|
263
|
+
overwrite: documentChange.options?.overwrite ?? false,
|
|
264
|
+
ignoreIfExists: documentChange.options?.ignoreIfExists ?? false,
|
|
256
265
|
},
|
|
257
266
|
});
|
|
258
267
|
}
|
|
@@ -261,8 +270,8 @@ function asWorkspaceEdit(workspaceEdit) {
|
|
|
261
270
|
oldResource: asUri(documentChange.oldUri),
|
|
262
271
|
newResource: asUri(documentChange.newUri),
|
|
263
272
|
options: {
|
|
264
|
-
overwrite:
|
|
265
|
-
ignoreIfExists:
|
|
273
|
+
overwrite: documentChange.options?.overwrite ?? false,
|
|
274
|
+
ignoreIfExists: documentChange.options?.ignoreIfExists ?? false,
|
|
266
275
|
},
|
|
267
276
|
});
|
|
268
277
|
}
|
|
@@ -270,8 +279,8 @@ function asWorkspaceEdit(workspaceEdit) {
|
|
|
270
279
|
result.edits.push({
|
|
271
280
|
oldResource: asUri(documentChange.uri),
|
|
272
281
|
options: {
|
|
273
|
-
recursive:
|
|
274
|
-
ignoreIfNotExists:
|
|
282
|
+
recursive: documentChange.options?.recursive ?? false,
|
|
283
|
+
ignoreIfNotExists: documentChange.options?.ignoreIfNotExists ?? false,
|
|
275
284
|
},
|
|
276
285
|
});
|
|
277
286
|
}
|
|
@@ -281,12 +290,11 @@ function asWorkspaceEdit(workspaceEdit) {
|
|
|
281
290
|
}
|
|
282
291
|
exports.asWorkspaceEdit = asWorkspaceEdit;
|
|
283
292
|
function asDocumentSymbol(symbol) {
|
|
284
|
-
var _a, _b;
|
|
285
293
|
return {
|
|
286
294
|
name: symbol.name,
|
|
287
295
|
detail: '',
|
|
288
296
|
kind: asSymbolKind(symbol.kind),
|
|
289
|
-
tags:
|
|
297
|
+
tags: symbol.tags?.map(asSymbolTag) ?? [],
|
|
290
298
|
range: asRange(symbol.range),
|
|
291
299
|
selectionRange: asRange(symbol.selectionRange),
|
|
292
300
|
children: symbol.children
|
|
@@ -389,7 +397,6 @@ function asCodeLens(item) {
|
|
|
389
397
|
}
|
|
390
398
|
exports.asCodeLens = asCodeLens;
|
|
391
399
|
function asCodeAction(item) {
|
|
392
|
-
var _a;
|
|
393
400
|
return {
|
|
394
401
|
title: item.title,
|
|
395
402
|
command: item.command ? asCommand(item.command) : undefined,
|
|
@@ -399,7 +406,7 @@ function asCodeAction(item) {
|
|
|
399
406
|
: undefined,
|
|
400
407
|
kind: item.kind,
|
|
401
408
|
isPreferred: item.isPreferred,
|
|
402
|
-
disabled:
|
|
409
|
+
disabled: item.disabled?.reason,
|
|
403
410
|
};
|
|
404
411
|
}
|
|
405
412
|
exports.asCodeAction = asCodeAction;
|
|
@@ -429,12 +436,11 @@ function asColorPresentation(item) {
|
|
|
429
436
|
}
|
|
430
437
|
exports.asColorPresentation = asColorPresentation;
|
|
431
438
|
function asFoldingRange(item) {
|
|
432
|
-
var _a;
|
|
433
439
|
return {
|
|
434
440
|
start: item.startLine + 1,
|
|
435
441
|
end: item.endLine + 1,
|
|
436
442
|
kind: {
|
|
437
|
-
value:
|
|
443
|
+
value: item.kind ?? '',
|
|
438
444
|
},
|
|
439
445
|
};
|
|
440
446
|
}
|