@vue/language-server 2.0.5 → 2.0.7
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/types.d.ts +1 -0
- package/node.js +31 -22
- package/package.json +7 -7
package/lib/types.d.ts
CHANGED
package/node.js
CHANGED
|
@@ -6,14 +6,17 @@ const language_core_1 = require("@vue/language-core");
|
|
|
6
6
|
const language_service_1 = require("@vue/language-service");
|
|
7
7
|
const protocol_1 = require("./lib/protocol");
|
|
8
8
|
const tsPluginClient = require("@vue/typescript-plugin/lib/client");
|
|
9
|
+
const utils_1 = require("@vue/typescript-plugin/lib/utils");
|
|
9
10
|
const protocol_2 = require("./lib/protocol");
|
|
10
11
|
exports.connection = (0, node_1.createConnection)();
|
|
11
12
|
exports.server = (0, node_1.createServer)(exports.connection);
|
|
12
13
|
const envToVueOptions = new WeakMap();
|
|
13
14
|
let tsdk;
|
|
15
|
+
let getTsPluginClient;
|
|
14
16
|
exports.connection.listen();
|
|
15
17
|
exports.connection.onInitialize(async (params) => {
|
|
16
18
|
const options = params.initializationOptions;
|
|
19
|
+
const hybridMode = options.vue?.hybridMode ?? true;
|
|
17
20
|
tsdk = (0, node_1.loadTsdkByPath)(options.typescript.tsdk, params.locale);
|
|
18
21
|
const vueFileExtensions = ['vue'];
|
|
19
22
|
if (options.vue?.additionalExtensions) {
|
|
@@ -21,14 +24,27 @@ exports.connection.onInitialize(async (params) => {
|
|
|
21
24
|
vueFileExtensions.push(additionalExtension);
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
|
-
|
|
27
|
+
if (hybridMode) {
|
|
28
|
+
getTsPluginClient = () => tsPluginClient;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
getTsPluginClient = (0, language_service_1.createDefaultGetTsPluginClient)(tsdk.typescript, env => envToVueOptions.get(env));
|
|
32
|
+
}
|
|
33
|
+
const result = await exports.server.initialize(params, hybridMode
|
|
34
|
+
? (0, node_1.createSimpleProjectProviderFactory)()
|
|
35
|
+
: (0, node_1.createTypeScriptProjectProviderFactory)(tsdk.typescript, tsdk.diagnosticMessages), {
|
|
25
36
|
watchFileExtensions: ['js', 'cjs', 'mjs', 'ts', 'cts', 'mts', 'jsx', 'tsx', 'json', ...vueFileExtensions],
|
|
26
37
|
getServicePlugins() {
|
|
27
|
-
return (0, language_service_1.createVueServicePlugins)(tsdk.typescript, env => envToVueOptions.get(env),
|
|
38
|
+
return (0, language_service_1.createVueServicePlugins)(tsdk.typescript, env => envToVueOptions.get(env), getTsPluginClient, hybridMode);
|
|
28
39
|
},
|
|
29
40
|
async getLanguagePlugins(serviceEnv, projectContext) {
|
|
30
|
-
const
|
|
31
|
-
const
|
|
41
|
+
const commandLine = await parseCommandLine();
|
|
42
|
+
const vueOptions = commandLine?.vueOptions ?? (0, language_core_1.resolveVueCompilerOptions)({});
|
|
43
|
+
for (const ext of vueFileExtensions) {
|
|
44
|
+
if (vueOptions.extensions.includes(`.${ext}`)) {
|
|
45
|
+
vueOptions.extensions.push(`.${ext}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
32
48
|
const vueLanguagePlugin = (0, language_core_1.createVueLanguagePlugin)(tsdk.typescript, serviceEnv.typescript.uriToFileName, fileName => {
|
|
33
49
|
if (projectContext.typescript?.sys.useCaseSensitiveFileNames ?? false) {
|
|
34
50
|
return projectContext.typescript?.host.getScriptFileNames().includes(fileName) ?? false;
|
|
@@ -42,12 +58,11 @@ exports.connection.onInitialize(async (params) => {
|
|
|
42
58
|
}
|
|
43
59
|
return false;
|
|
44
60
|
}
|
|
45
|
-
}, commandLine?.options ?? {},
|
|
46
|
-
envToVueOptions.set(serviceEnv,
|
|
61
|
+
}, commandLine?.options ?? {}, vueOptions, options.codegenStack);
|
|
62
|
+
envToVueOptions.set(serviceEnv, vueOptions);
|
|
47
63
|
return [vueLanguagePlugin];
|
|
48
64
|
async function parseCommandLine() {
|
|
49
65
|
let commandLine;
|
|
50
|
-
let vueOptions = {};
|
|
51
66
|
if (projectContext.typescript) {
|
|
52
67
|
const { sys } = projectContext.typescript;
|
|
53
68
|
let sysVersion;
|
|
@@ -60,20 +75,14 @@ exports.connection.onInitialize(async (params) => {
|
|
|
60
75
|
newSysVersion = await sys.sync();
|
|
61
76
|
}
|
|
62
77
|
}
|
|
63
|
-
|
|
64
|
-
vueOptions = commandLine.vueOptions;
|
|
65
|
-
}
|
|
66
|
-
vueOptions.extensions = [
|
|
67
|
-
...vueOptions.extensions ?? ['.vue'],
|
|
68
|
-
...vueFileExtensions.map(ext => '.' + ext),
|
|
69
|
-
];
|
|
70
|
-
vueOptions.extensions = [...new Set(vueOptions.extensions)];
|
|
71
|
-
return [commandLine, vueOptions];
|
|
78
|
+
return commandLine;
|
|
72
79
|
}
|
|
73
80
|
},
|
|
74
81
|
});
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
if (hybridMode) {
|
|
83
|
+
// handle by tsserver + @vue/typescript-plugin
|
|
84
|
+
result.capabilities.semanticTokensProvider = undefined;
|
|
85
|
+
}
|
|
77
86
|
return result;
|
|
78
87
|
});
|
|
79
88
|
exports.connection.onInitialized(() => {
|
|
@@ -88,23 +97,23 @@ exports.connection.onRequest(protocol_1.ParseSFCRequest.type, params => {
|
|
|
88
97
|
exports.connection.onRequest(protocol_1.DetectNameCasingRequest.type, async (params) => {
|
|
89
98
|
const languageService = await getService(params.textDocument.uri);
|
|
90
99
|
if (languageService) {
|
|
91
|
-
return await (0, language_service_1.detect)(languageService.context, params.textDocument.uri,
|
|
100
|
+
return await (0, language_service_1.detect)(languageService.context, params.textDocument.uri, getTsPluginClient(languageService.context));
|
|
92
101
|
}
|
|
93
102
|
});
|
|
94
103
|
exports.connection.onRequest(protocol_1.GetConvertTagCasingEditsRequest.type, async (params) => {
|
|
95
104
|
const languageService = await getService(params.textDocument.uri);
|
|
96
105
|
if (languageService) {
|
|
97
|
-
return await (0, language_service_1.convertTagName)(languageService.context, params.textDocument.uri, params.casing,
|
|
106
|
+
return await (0, language_service_1.convertTagName)(languageService.context, params.textDocument.uri, params.casing, getTsPluginClient(languageService.context));
|
|
98
107
|
}
|
|
99
108
|
});
|
|
100
109
|
exports.connection.onRequest(protocol_1.GetConvertAttrCasingEditsRequest.type, async (params) => {
|
|
101
110
|
const languageService = await getService(params.textDocument.uri);
|
|
102
111
|
if (languageService) {
|
|
103
|
-
return await (0, language_service_1.convertAttrName)(languageService.context, params.textDocument.uri, params.casing,
|
|
112
|
+
return await (0, language_service_1.convertAttrName)(languageService.context, params.textDocument.uri, params.casing, getTsPluginClient(languageService.context));
|
|
104
113
|
}
|
|
105
114
|
});
|
|
106
115
|
exports.connection.onRequest(protocol_2.GetConnectedNamedPipeServerRequest.type, async (fileName) => {
|
|
107
|
-
const server = await
|
|
116
|
+
const server = await (0, utils_1.searchNamedPipeServerForFile)(fileName);
|
|
108
117
|
if (server) {
|
|
109
118
|
return server;
|
|
110
119
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"**/*.js",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"directory": "packages/language-server"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@volar/language-core": "~2.1.
|
|
19
|
-
"@volar/language-server": "~2.1.
|
|
20
|
-
"@vue/language-core": "2.0.
|
|
21
|
-
"@vue/language-service": "2.0.
|
|
22
|
-
"@vue/typescript-plugin": "2.0.
|
|
18
|
+
"@volar/language-core": "~2.1.3",
|
|
19
|
+
"@volar/language-server": "~2.1.3",
|
|
20
|
+
"@vue/language-core": "2.0.7",
|
|
21
|
+
"@vue/language-service": "2.0.7",
|
|
22
|
+
"@vue/typescript-plugin": "2.0.7",
|
|
23
23
|
"vscode-languageserver-protocol": "^3.17.5"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "4a37e8f3ebcf31ecfd2ea627f7611d5990ec5df6"
|
|
26
26
|
}
|