@volar/monaco 1.4.0-alpha.8 → 1.4.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/out/utils/provider.js +29 -2
- package/out/worker.js +3 -2
- package/package.json +4 -3
package/out/utils/provider.js
CHANGED
|
@@ -10,6 +10,8 @@ async function createLanguageFeaturesProvider(worker, getSyncUris) {
|
|
|
10
10
|
const codeLens = new WeakMap();
|
|
11
11
|
const codeActions = new WeakMap();
|
|
12
12
|
const colorInfos = new WeakMap();
|
|
13
|
+
const documentLinks = new WeakMap();
|
|
14
|
+
const inlayHints = new WeakMap();
|
|
13
15
|
const languageService = await worker.getProxy();
|
|
14
16
|
return {
|
|
15
17
|
triggerCharacters: await languageService.triggerCharacters(),
|
|
@@ -178,10 +180,22 @@ async function createLanguageFeaturesProvider(worker, getSyncUris) {
|
|
|
178
180
|
const codeResult = await languageService.findDocumentLinks(model.uri.toString());
|
|
179
181
|
if (codeResult) {
|
|
180
182
|
return {
|
|
181
|
-
links: codeResult.map(
|
|
183
|
+
links: codeResult.map(link => {
|
|
184
|
+
const monacoLink = protocol2monaco.asLink(link);
|
|
185
|
+
documentLinks.set(monacoLink, link);
|
|
186
|
+
return monacoLink;
|
|
187
|
+
}),
|
|
182
188
|
};
|
|
183
189
|
}
|
|
184
190
|
},
|
|
191
|
+
async resolveLink(link) {
|
|
192
|
+
let codeResult = documentLinks.get(link);
|
|
193
|
+
if (codeResult) {
|
|
194
|
+
codeResult = await languageService.doDocumentLinkResolve(codeResult);
|
|
195
|
+
return protocol2monaco.asLink(codeResult);
|
|
196
|
+
}
|
|
197
|
+
return link;
|
|
198
|
+
},
|
|
185
199
|
async provideCompletionItems(model, position, context) {
|
|
186
200
|
const languageService = await worker.withSyncedResources(getSyncUris());
|
|
187
201
|
const codeResult = await languageService.doComplete(model.uri.toString(), monaco2protocol.asPosition(position), monaco2protocol.asCompletionContext(context));
|
|
@@ -276,11 +290,24 @@ async function createLanguageFeaturesProvider(worker, getSyncUris) {
|
|
|
276
290
|
const codeResult = await languageService.getInlayHints(model.uri.toString(), monaco2protocol.asRange(range));
|
|
277
291
|
if (codeResult) {
|
|
278
292
|
return {
|
|
279
|
-
hints: codeResult.map(
|
|
293
|
+
hints: codeResult.map(hint => {
|
|
294
|
+
const monacoHint = protocol2monaco.asInlayHint(hint);
|
|
295
|
+
inlayHints.set(monacoHint, hint);
|
|
296
|
+
return monacoHint;
|
|
297
|
+
}),
|
|
280
298
|
dispose: () => { },
|
|
281
299
|
};
|
|
282
300
|
}
|
|
283
301
|
},
|
|
302
|
+
async resolveInlayHint(hint) {
|
|
303
|
+
const languageService = await worker.withSyncedResources(getSyncUris());
|
|
304
|
+
const codeHint = inlayHints.get(hint);
|
|
305
|
+
if (codeHint) {
|
|
306
|
+
const resolvedCodeHint = await languageService.doInlayHintResolve(codeHint);
|
|
307
|
+
return protocol2monaco.asInlayHint(resolvedCodeHint);
|
|
308
|
+
}
|
|
309
|
+
return hint;
|
|
310
|
+
},
|
|
284
311
|
async provideHover(model, position) {
|
|
285
312
|
const languageService = await worker.withSyncedResources(getSyncUris());
|
|
286
313
|
const codeResult = await languageService.doHover(model.uri.toString(), monaco2protocol.asPosition(position));
|
package/out/worker.js
CHANGED
|
@@ -4,12 +4,13 @@ exports.createDtsHost = exports.createLanguageService = void 0;
|
|
|
4
4
|
const language_service_1 = require("@volar/language-service");
|
|
5
5
|
const vscode_uri_1 = require("vscode-uri");
|
|
6
6
|
function createLanguageService(options) {
|
|
7
|
+
const ts = options.typescript?.module;
|
|
7
8
|
const dtsFiles = new Map();
|
|
8
|
-
const ts = options.typescript ? options.typescript.module : undefined;
|
|
9
9
|
const config = options.config ?? {};
|
|
10
10
|
const compilerOptions = options.typescript?.compilerOptions ?? {};
|
|
11
11
|
let host = createLanguageServiceHost();
|
|
12
12
|
let languageService = (0, language_service_1.createLanguageService)({
|
|
13
|
+
modules: { typescript: ts },
|
|
13
14
|
host,
|
|
14
15
|
config,
|
|
15
16
|
uriToFileName: (uri) => vscode_uri_1.URI.parse(uri).fsPath.replace(/\\/g, '/'),
|
|
@@ -40,6 +41,7 @@ function createLanguageService(options) {
|
|
|
40
41
|
dtsVersion = newVersion;
|
|
41
42
|
languageService.dispose();
|
|
42
43
|
languageService = (0, language_service_1.createLanguageService)({
|
|
44
|
+
modules: { typescript: ts },
|
|
43
45
|
host,
|
|
44
46
|
config,
|
|
45
47
|
rootUri: vscode_uri_1.URI.file('/'),
|
|
@@ -143,7 +145,6 @@ function createLanguageService(options) {
|
|
|
143
145
|
}
|
|
144
146
|
return readDtsFile(fileName) !== undefined;
|
|
145
147
|
},
|
|
146
|
-
getTypeScriptModule: ts ? (() => ts) : undefined,
|
|
147
148
|
};
|
|
148
149
|
return host;
|
|
149
150
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/monaco",
|
|
3
|
-
"version": "1.4.0
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"main": "out/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
"directory": "packages/monaco"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@volar/language-service": "1.4.0
|
|
18
|
+
"@volar/language-service": "1.4.0",
|
|
19
19
|
"monaco-editor-core": "^0.36.0",
|
|
20
20
|
"vscode-languageserver-protocol": "^3.17.3",
|
|
21
21
|
"vscode-uri": "^3.0.7"
|
|
22
|
-
}
|
|
22
|
+
},
|
|
23
|
+
"gitHead": "9bf14ef0d08c53f9ae32cf538d9748fa91cc4ab7"
|
|
23
24
|
}
|