@vue/language-server 2.0.28 → 2.1.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/lib/hybridModeProject.js +5 -7
- package/lib/initialize.d.ts +1 -1
- package/lib/initialize.js +33 -4
- package/node.js +5 -2
- package/package.json +8 -7
package/lib/hybridModeProject.js
CHANGED
|
@@ -14,15 +14,14 @@ function createHybridModeProject(create) {
|
|
|
14
14
|
setup(_server) {
|
|
15
15
|
server = _server;
|
|
16
16
|
utils_1.onSomePipeReadyCallbacks.push(() => {
|
|
17
|
-
server.
|
|
17
|
+
server.languageFeatures.requestRefresh(false);
|
|
18
18
|
});
|
|
19
|
-
server.onDidChangeWatchedFiles(({ changes }) => {
|
|
19
|
+
server.fileWatcher.onDidChangeWatchedFiles(({ changes }) => {
|
|
20
20
|
for (const change of changes) {
|
|
21
21
|
const changeUri = vscode_uri_1.URI.parse(change.uri);
|
|
22
22
|
if (tsconfigProjects.has(changeUri)) {
|
|
23
23
|
tsconfigProjects.get(changeUri)?.then(project => project.dispose());
|
|
24
24
|
tsconfigProjects.delete(changeUri);
|
|
25
|
-
server.clearPushDiagnostics();
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
});
|
|
@@ -77,11 +76,10 @@ function createHybridModeProject(create) {
|
|
|
77
76
|
asFileName,
|
|
78
77
|
});
|
|
79
78
|
const language = (0, language_core_1.createLanguage)([
|
|
80
|
-
{ getLanguageId: uri => server.documents.get(
|
|
79
|
+
{ getLanguageId: uri => server.documents.get(uri)?.languageId },
|
|
81
80
|
...languagePlugins,
|
|
82
81
|
], (0, language_service_1.createUriMap)(), uri => {
|
|
83
|
-
const
|
|
84
|
-
const document = documentKey ? server.documents.get(documentKey) : undefined;
|
|
82
|
+
const document = server.documents.get(uri);
|
|
85
83
|
if (document) {
|
|
86
84
|
language.scripts.set(uri, document.getSnapshot(), document.languageId);
|
|
87
85
|
}
|
|
@@ -91,7 +89,7 @@ function createHybridModeProject(create) {
|
|
|
91
89
|
});
|
|
92
90
|
const project = {};
|
|
93
91
|
setup?.({ language, project });
|
|
94
|
-
return (0, language_service_1.createLanguageService)(language, server.languageServicePlugins, (0, simpleProject_1.createLanguageServiceEnvironment)(server, [...server.workspaceFolders.
|
|
92
|
+
return (0, language_service_1.createLanguageService)(language, server.languageServicePlugins, (0, simpleProject_1.createLanguageServiceEnvironment)(server, [...server.workspaceFolders.all]), project);
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
//# sourceMappingURL=hybridModeProject.js.map
|
package/lib/initialize.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LanguageServer } from '@volar/language-server';
|
|
2
2
|
import { InitializeParams } from '@vue/language-service';
|
|
3
3
|
import type * as ts from 'typescript';
|
|
4
|
-
export declare function initialize(server: LanguageServer, params: InitializeParams, ts: typeof import('typescript'), tsLocalized: ts.MapLike<string> | undefined): import("@volar/language-server").
|
|
4
|
+
export declare function initialize(server: LanguageServer, params: InitializeParams, ts: typeof import('typescript'), tsLocalized: ts.MapLike<string> | undefined): import("@volar/language-server").InitializeResult<import("@volar/language-server").ExperimentalFeatures>;
|
package/lib/initialize.js
CHANGED
|
@@ -7,7 +7,7 @@ const language_service_1 = require("@vue/language-service");
|
|
|
7
7
|
function initialize(server, params, ts, tsLocalized) {
|
|
8
8
|
const watchingExtensions = new Set();
|
|
9
9
|
let fileWatcher;
|
|
10
|
-
return server.initialize(params, (0, node_1.createTypeScriptProject)(ts, tsLocalized, async ({ configFileName, sys,
|
|
10
|
+
return server.initialize(params, (0, node_1.createTypeScriptProject)(ts, tsLocalized, async ({ configFileName, sys, uriConverter }) => {
|
|
11
11
|
let compilerOptions;
|
|
12
12
|
let vueCompilerOptions;
|
|
13
13
|
if (configFileName) {
|
|
@@ -26,14 +26,43 @@ function initialize(server, params, ts, tsLocalized) {
|
|
|
26
26
|
compilerOptions = ts.getDefaultCompilerOptions();
|
|
27
27
|
vueCompilerOptions = (0, language_core_1.resolveVueCompilerOptions)({});
|
|
28
28
|
}
|
|
29
|
+
vueCompilerOptions.__test = params.initializationOptions.typescript.disableAutoImportCache;
|
|
29
30
|
updateFileWatcher(vueCompilerOptions);
|
|
30
31
|
return {
|
|
31
|
-
languagePlugins: [
|
|
32
|
+
languagePlugins: [
|
|
33
|
+
(0, language_core_1.createVueLanguagePlugin)(ts, compilerOptions, vueCompilerOptions, s => uriConverter.asFileName(s)),
|
|
34
|
+
],
|
|
32
35
|
setup({ project }) {
|
|
33
36
|
project.vue = { compilerOptions: vueCompilerOptions };
|
|
37
|
+
if (project.typescript) {
|
|
38
|
+
const globalTypesName = `__globalTypes_${vueCompilerOptions.target}_${vueCompilerOptions.strictTemplates}.d.ts`;
|
|
39
|
+
const fileExists = project.typescript.languageServiceHost.fileExists.bind(project.typescript.languageServiceHost);
|
|
40
|
+
const getScriptSnapshot = project.typescript.languageServiceHost.getScriptSnapshot.bind(project.typescript.languageServiceHost);
|
|
41
|
+
const snapshots = new Map();
|
|
42
|
+
project.typescript.languageServiceHost.fileExists = path => {
|
|
43
|
+
if (path.endsWith(globalTypesName)) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return fileExists(path);
|
|
47
|
+
};
|
|
48
|
+
project.typescript.languageServiceHost.getScriptSnapshot = path => {
|
|
49
|
+
if (path.endsWith(globalTypesName)) {
|
|
50
|
+
if (!snapshots.has(path)) {
|
|
51
|
+
const contents = (0, language_core_1.generateGlobalTypes)(vueCompilerOptions.lib, vueCompilerOptions.target, vueCompilerOptions.strictTemplates);
|
|
52
|
+
snapshots.set(path, {
|
|
53
|
+
getText: (start, end) => contents.substring(start, end),
|
|
54
|
+
getLength: () => contents.length,
|
|
55
|
+
getChangeRange: () => undefined,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return snapshots.get(path);
|
|
59
|
+
}
|
|
60
|
+
return getScriptSnapshot(path);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
34
63
|
},
|
|
35
64
|
};
|
|
36
|
-
}), (0, language_service_1.getFullLanguageServicePlugins)(ts));
|
|
65
|
+
}), (0, language_service_1.getFullLanguageServicePlugins)(ts, { disableAutoImportCache: params.initializationOptions.typescript.disableAutoImportCache }));
|
|
37
66
|
function updateFileWatcher(vueCompilerOptions) {
|
|
38
67
|
const extensions = [
|
|
39
68
|
'js', 'cjs', 'mjs', 'ts', 'cts', 'mts', 'jsx', 'tsx', 'json',
|
|
@@ -45,7 +74,7 @@ function initialize(server, params, ts, tsLocalized) {
|
|
|
45
74
|
watchingExtensions.add(ext);
|
|
46
75
|
}
|
|
47
76
|
fileWatcher?.then(dispose => dispose.dispose());
|
|
48
|
-
fileWatcher = server.watchFiles(['**/*.{' + [...watchingExtensions].join(',') + '}']);
|
|
77
|
+
fileWatcher = server.fileWatcher.watchFiles(['**/*.{' + [...watchingExtensions].join(',') + '}']);
|
|
49
78
|
}
|
|
50
79
|
}
|
|
51
80
|
}
|
package/node.js
CHANGED
|
@@ -21,13 +21,16 @@ connection.onInitialize(params => {
|
|
|
21
21
|
vueOptions: (0, language_core_1.resolveVueCompilerOptions)({}),
|
|
22
22
|
options: ts.getDefaultCompilerOptions(),
|
|
23
23
|
};
|
|
24
|
+
commandLine.vueOptions.__test = params.initializationOptions.typescript.disableAutoImportCache;
|
|
24
25
|
return {
|
|
25
|
-
languagePlugins: [
|
|
26
|
+
languagePlugins: [
|
|
27
|
+
(0, language_core_1.createVueLanguagePlugin)(ts, commandLine.options, commandLine.vueOptions, asFileName),
|
|
28
|
+
],
|
|
26
29
|
setup({ project }) {
|
|
27
30
|
project.vue = { compilerOptions: commandLine.vueOptions };
|
|
28
31
|
},
|
|
29
32
|
};
|
|
30
|
-
}), (0, language_service_1.getHybridModeLanguageServicePlugins)(ts, namedPipeClient)
|
|
33
|
+
}), (0, language_service_1.getHybridModeLanguageServicePlugins)(ts, namedPipeClient));
|
|
31
34
|
}
|
|
32
35
|
else {
|
|
33
36
|
return (0, initialize_1.initialize)(server, params, ts, diagnosticMessages);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-server",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"**/*.js",
|
|
@@ -15,13 +15,14 @@
|
|
|
15
15
|
"directory": "packages/language-server"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@volar/language-core": "~2.4.
|
|
19
|
-
"@volar/language-server": "~2.4.
|
|
20
|
-
"@
|
|
21
|
-
"@vue/language-
|
|
22
|
-
"@vue/
|
|
18
|
+
"@volar/language-core": "~2.4.1",
|
|
19
|
+
"@volar/language-server": "~2.4.1",
|
|
20
|
+
"@volar/test-utils": "~2.4.1",
|
|
21
|
+
"@vue/language-core": "2.1.0",
|
|
22
|
+
"@vue/language-service": "2.1.0",
|
|
23
|
+
"@vue/typescript-plugin": "2.1.0",
|
|
23
24
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
24
25
|
"vscode-uri": "^3.0.8"
|
|
25
26
|
},
|
|
26
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "510063740b90b64caedaee1f0bde70974613a92c"
|
|
27
28
|
}
|