@vue/language-service 2.0.22 → 2.0.23-alpha.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/index.d.ts +11 -4
- package/index.js +126 -36
- package/lib/plugins/vue-document-drop.d.ts +2 -3
- package/lib/plugins/vue-document-drop.js +6 -3
- package/lib/plugins/vue-sfc.js +1 -1
- package/lib/plugins/vue-template.d.ts +3 -3
- package/lib/plugins/vue-template.js +21 -8
- package/package.json +16 -16
package/index.d.ts
CHANGED
|
@@ -2,7 +2,14 @@ export * from '@volar/language-service';
|
|
|
2
2
|
export * from '@vue/language-core';
|
|
3
3
|
export * from './lib/ideFeatures/nameCasing';
|
|
4
4
|
export * from './lib/types';
|
|
5
|
-
import type { LanguageServicePlugin
|
|
6
|
-
|
|
7
|
-
export declare function
|
|
8
|
-
export declare
|
|
5
|
+
import type { LanguageServicePlugin } from '@volar/language-service';
|
|
6
|
+
export declare function getFullLanguageServicePlugins(ts: typeof import('typescript')): LanguageServicePlugin[];
|
|
7
|
+
export declare function getHybridModeLanguageServicePlugins(ts: typeof import('typescript'), getTsPluginClient: typeof import("@vue/typescript-plugin/lib/client")): LanguageServicePlugin[];
|
|
8
|
+
export declare const commands: {
|
|
9
|
+
parseSfc: string;
|
|
10
|
+
detectNameCasing: string;
|
|
11
|
+
convertTagsToKebabCase: string;
|
|
12
|
+
convertTagsToPascalCase: string;
|
|
13
|
+
convertPropsToKebabCase: string;
|
|
14
|
+
convertPropsToCamelCase: string;
|
|
15
|
+
};
|
package/index.js
CHANGED
|
@@ -14,12 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
17
|
+
exports.commands = void 0;
|
|
18
|
+
exports.getFullLanguageServicePlugins = getFullLanguageServicePlugins;
|
|
19
|
+
exports.getHybridModeLanguageServicePlugins = getHybridModeLanguageServicePlugins;
|
|
19
20
|
__exportStar(require("@volar/language-service"), exports);
|
|
20
21
|
__exportStar(require("@vue/language-core"), exports);
|
|
21
22
|
__exportStar(require("./lib/ideFeatures/nameCasing"), exports);
|
|
22
23
|
__exportStar(require("./lib/types"), exports);
|
|
24
|
+
const types_1 = require("./lib/types");
|
|
23
25
|
const volar_service_emmet_1 = require("volar-service-emmet");
|
|
24
26
|
const volar_service_json_1 = require("volar-service-json");
|
|
25
27
|
const volar_service_pug_beautify_1 = require("volar-service-pug-beautify");
|
|
@@ -39,6 +41,7 @@ const vue_template_1 = require("./lib/plugins/vue-template");
|
|
|
39
41
|
const vue_toggle_v_bind_codeaction_1 = require("./lib/plugins/vue-toggle-v-bind-codeaction");
|
|
40
42
|
const vue_twoslash_queries_1 = require("./lib/plugins/vue-twoslash-queries");
|
|
41
43
|
const vue_visualize_hidden_callback_param_1 = require("./lib/plugins/vue-visualize-hidden-callback-param");
|
|
44
|
+
const language_core_1 = require("@vue/language-core");
|
|
42
45
|
const common_1 = require("@vue/typescript-plugin/lib/common");
|
|
43
46
|
const collectExtractProps_1 = require("@vue/typescript-plugin/lib/requests/collectExtractProps");
|
|
44
47
|
const componentInfos_1 = require("@vue/typescript-plugin/lib/requests/componentInfos");
|
|
@@ -46,43 +49,34 @@ const getImportPathForFile_1 = require("@vue/typescript-plugin/lib/requests/getI
|
|
|
46
49
|
const getPropertiesAtLocation_1 = require("@vue/typescript-plugin/lib/requests/getPropertiesAtLocation");
|
|
47
50
|
const getQuickInfoAtPosition_1 = require("@vue/typescript-plugin/lib/requests/getQuickInfoAtPosition");
|
|
48
51
|
const vscode_uri_1 = require("vscode-uri");
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const languageService = created.provide['typescript/languageService']();
|
|
64
|
-
const vueOptions = getVueOptions(context.env);
|
|
65
|
-
(0, common_1.decorateLanguageServiceForVue)(context.language, languageService, vueOptions, ts, false, fileName => context.language.typescript?.asScriptId(fileName) ?? vscode_uri_1.URI.file(fileName));
|
|
52
|
+
const nameCasing_1 = require("./lib/ideFeatures/nameCasing");
|
|
53
|
+
function getFullLanguageServicePlugins(ts) {
|
|
54
|
+
const plugins = [
|
|
55
|
+
...(0, volar_service_typescript_1.create)(ts),
|
|
56
|
+
...getCommonLanguageServicePlugins(ts, getTsPluginClientForLSP)
|
|
57
|
+
];
|
|
58
|
+
for (let i = 0; i < plugins.length; i++) {
|
|
59
|
+
const plugin = plugins[i];
|
|
60
|
+
if (plugin.name === 'typescript-semantic') {
|
|
61
|
+
plugins[i] = {
|
|
62
|
+
...plugin,
|
|
63
|
+
create(context) {
|
|
64
|
+
const created = plugin.create(context);
|
|
65
|
+
if (!context.language.typescript) {
|
|
66
66
|
return created;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
}
|
|
68
|
+
const languageService = created.provide['typescript/languageService']();
|
|
69
|
+
if (context.language.vue) {
|
|
70
|
+
(0, common_1.decorateLanguageServiceForVue)(context.language, languageService, context.language.vue.compilerOptions, ts, false, context.language.typescript.asScriptId);
|
|
71
|
+
}
|
|
72
|
+
return created;
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
break;
|
|
71
76
|
}
|
|
72
77
|
}
|
|
73
|
-
else {
|
|
74
|
-
plugins.push((0, syntactic_1.create)(ts), (0, docCommentTemplate_1.create)(ts));
|
|
75
|
-
}
|
|
76
|
-
plugins.push((0, volar_service_typescript_twoslash_queries_1.create)(ts), (0, css_1.create)(), (0, volar_service_pug_beautify_1.create)(), (0, volar_service_json_1.create)(), (0, vue_template_1.create)('html', ts, getVueOptions, getTsPluginClient), (0, vue_template_1.create)('pug', ts, getVueOptions, getTsPluginClient), (0, vue_sfc_1.create)(), (0, vue_twoslash_queries_1.create)(ts, getTsPluginClient), (0, vue_document_links_1.create)(), (0, vue_document_drop_1.create)(ts, getVueOptions, getTsPluginClient), (0, vue_autoinsert_dotvalue_1.create)(ts, getTsPluginClient), (0, vue_autoinsert_space_1.create)(), (0, vue_visualize_hidden_callback_param_1.create)(), (0, vue_directive_comments_1.create)(), (0, vue_extract_file_1.create)(ts, getTsPluginClient), (0, vue_toggle_v_bind_codeaction_1.create)(ts), (0, volar_service_emmet_1.create)({
|
|
77
|
-
mappedLanguages: {
|
|
78
|
-
'vue': 'html',
|
|
79
|
-
'postcss': 'scss',
|
|
80
|
-
},
|
|
81
|
-
}));
|
|
82
78
|
return plugins;
|
|
83
|
-
|
|
84
|
-
function createDefaultGetTsPluginClient(ts) {
|
|
85
|
-
return context => {
|
|
79
|
+
function getTsPluginClientForLSP(context) {
|
|
86
80
|
if (!context.language.typescript) {
|
|
87
81
|
return;
|
|
88
82
|
}
|
|
@@ -127,6 +121,102 @@ function createDefaultGetTsPluginClient(ts) {
|
|
|
127
121
|
return await getQuickInfoAtPosition_1.getQuickInfoAtPosition.apply(requestContext, args);
|
|
128
122
|
},
|
|
129
123
|
};
|
|
130
|
-
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function getHybridModeLanguageServicePlugins(ts, getTsPluginClient) {
|
|
127
|
+
const plugins = [
|
|
128
|
+
(0, syntactic_1.create)(ts),
|
|
129
|
+
(0, docCommentTemplate_1.create)(ts),
|
|
130
|
+
...getCommonLanguageServicePlugins(ts, () => getTsPluginClient)
|
|
131
|
+
];
|
|
132
|
+
for (const plugin of plugins) {
|
|
133
|
+
// avoid affecting TS plugin
|
|
134
|
+
delete plugin.capabilities.semanticTokensProvider;
|
|
135
|
+
}
|
|
136
|
+
return plugins;
|
|
137
|
+
}
|
|
138
|
+
exports.commands = {
|
|
139
|
+
parseSfc: 'vue.parseSfc',
|
|
140
|
+
detectNameCasing: 'vue.detectNameCasing',
|
|
141
|
+
convertTagsToKebabCase: 'vue.convertTagsToKebabCase',
|
|
142
|
+
convertTagsToPascalCase: 'vue.convertTagsToPascalCase',
|
|
143
|
+
convertPropsToKebabCase: 'vue.convertPropsToKebabCase',
|
|
144
|
+
convertPropsToCamelCase: 'vue.convertPropsToCamelCase',
|
|
145
|
+
};
|
|
146
|
+
function getCommonLanguageServicePlugins(ts, getTsPluginClient) {
|
|
147
|
+
return [
|
|
148
|
+
(0, volar_service_typescript_twoslash_queries_1.create)(ts),
|
|
149
|
+
(0, css_1.create)(),
|
|
150
|
+
(0, volar_service_pug_beautify_1.create)(),
|
|
151
|
+
(0, volar_service_json_1.create)(),
|
|
152
|
+
(0, vue_template_1.create)('html', ts, getTsPluginClient),
|
|
153
|
+
(0, vue_template_1.create)('pug', ts, getTsPluginClient),
|
|
154
|
+
(0, vue_sfc_1.create)(),
|
|
155
|
+
(0, vue_twoslash_queries_1.create)(ts, getTsPluginClient),
|
|
156
|
+
(0, vue_document_links_1.create)(),
|
|
157
|
+
(0, vue_document_drop_1.create)(ts, getTsPluginClient),
|
|
158
|
+
(0, vue_autoinsert_dotvalue_1.create)(ts, getTsPluginClient),
|
|
159
|
+
(0, vue_autoinsert_space_1.create)(),
|
|
160
|
+
(0, vue_visualize_hidden_callback_param_1.create)(),
|
|
161
|
+
(0, vue_directive_comments_1.create)(),
|
|
162
|
+
(0, vue_extract_file_1.create)(ts, getTsPluginClient),
|
|
163
|
+
(0, vue_toggle_v_bind_codeaction_1.create)(ts),
|
|
164
|
+
(0, volar_service_emmet_1.create)({
|
|
165
|
+
mappedLanguages: {
|
|
166
|
+
'vue': 'html',
|
|
167
|
+
'postcss': 'scss',
|
|
168
|
+
},
|
|
169
|
+
}),
|
|
170
|
+
{
|
|
171
|
+
name: 'vue-parse-sfc',
|
|
172
|
+
capabilities: {
|
|
173
|
+
executeCommandProvider: {
|
|
174
|
+
commands: [exports.commands.parseSfc],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
create() {
|
|
178
|
+
return {
|
|
179
|
+
executeCommand(_command, [source]) {
|
|
180
|
+
return (0, language_core_1.parse)(source);
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: 'vue-name-casing',
|
|
187
|
+
capabilities: {
|
|
188
|
+
executeCommandProvider: {
|
|
189
|
+
commands: [
|
|
190
|
+
exports.commands.detectNameCasing,
|
|
191
|
+
exports.commands.convertTagsToKebabCase,
|
|
192
|
+
exports.commands.convertTagsToPascalCase,
|
|
193
|
+
exports.commands.convertPropsToKebabCase,
|
|
194
|
+
exports.commands.convertPropsToCamelCase,
|
|
195
|
+
],
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
create(context) {
|
|
199
|
+
return {
|
|
200
|
+
executeCommand(command, [uri]) {
|
|
201
|
+
if (command === exports.commands.detectNameCasing) {
|
|
202
|
+
return (0, nameCasing_1.detect)(context, vscode_uri_1.URI.parse(uri));
|
|
203
|
+
}
|
|
204
|
+
else if (command === exports.commands.convertTagsToKebabCase) {
|
|
205
|
+
return (0, nameCasing_1.convertTagName)(context, vscode_uri_1.URI.parse(uri), types_1.TagNameCasing.Kebab, getTsPluginClient(context));
|
|
206
|
+
}
|
|
207
|
+
else if (command === exports.commands.convertTagsToPascalCase) {
|
|
208
|
+
return (0, nameCasing_1.convertTagName)(context, vscode_uri_1.URI.parse(uri), types_1.TagNameCasing.Pascal, getTsPluginClient(context));
|
|
209
|
+
}
|
|
210
|
+
else if (command === exports.commands.convertPropsToKebabCase) {
|
|
211
|
+
return (0, nameCasing_1.convertAttrName)(context, vscode_uri_1.URI.parse(uri), types_1.AttrNameCasing.Kebab, getTsPluginClient(context));
|
|
212
|
+
}
|
|
213
|
+
else if (command === exports.commands.convertPropsToCamelCase) {
|
|
214
|
+
return (0, nameCasing_1.convertAttrName)(context, vscode_uri_1.URI.parse(uri), types_1.AttrNameCasing.Camel, getTsPluginClient(context));
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
},
|
|
219
|
+
}
|
|
220
|
+
];
|
|
131
221
|
}
|
|
132
222
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare function create(ts: typeof import('typescript'), getVueOptions: (env: LanguageServiceEnvironment) => VueCompilerOptions, getTsPluginClient?: (context: LanguageServiceContext) => typeof import('@vue/typescript-plugin/lib/client') | undefined): LanguageServicePlugin;
|
|
1
|
+
import { LanguageServiceContext, LanguageServicePlugin } from '../types';
|
|
2
|
+
export declare function create(ts: typeof import('typescript'), getTsPluginClient?: (context: LanguageServiceContext) => typeof import('@vue/typescript-plugin/lib/client') | undefined): LanguageServicePlugin;
|
|
@@ -8,16 +8,19 @@ const getUserPreferences_1 = require("volar-service-typescript/lib/configs/getUs
|
|
|
8
8
|
const vscode_uri_1 = require("vscode-uri");
|
|
9
9
|
const vue_extract_file_1 = require("../plugins/vue-extract-file");
|
|
10
10
|
const types_1 = require("../types");
|
|
11
|
-
function create(ts,
|
|
11
|
+
function create(ts, getTsPluginClient) {
|
|
12
12
|
return {
|
|
13
13
|
name: 'vue-document-drop',
|
|
14
14
|
capabilities: {
|
|
15
15
|
// documentDropEditsProvider: true,
|
|
16
16
|
},
|
|
17
17
|
create(context) {
|
|
18
|
+
if (!context.language.vue) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
18
21
|
let casing = types_1.TagNameCasing.Pascal; // TODO
|
|
19
22
|
const tsPluginClient = getTsPluginClient?.(context);
|
|
20
|
-
const vueCompilerOptions =
|
|
23
|
+
const vueCompilerOptions = context.language.vue.compilerOptions;
|
|
21
24
|
return {
|
|
22
25
|
async provideDocumentDropEdits(document, _position, dataTransfer) {
|
|
23
26
|
if (document.languageId !== 'html') {
|
|
@@ -48,7 +51,7 @@ function create(ts, getVueOptions, getTsPluginClient) {
|
|
|
48
51
|
return;
|
|
49
52
|
}
|
|
50
53
|
const additionalEdit = {};
|
|
51
|
-
const code = [...(0, language_core_1.forEachEmbeddedCode)(vueVirtualCode)].find(code => code.id === (sfc.scriptSetup ? '
|
|
54
|
+
const code = [...(0, language_core_1.forEachEmbeddedCode)(vueVirtualCode)].find(code => code.id === (sfc.scriptSetup ? 'scriptsetup_raw' : 'script_raw'));
|
|
52
55
|
const lastImportNode = (0, vue_extract_file_1.getLastImportNode)(ts, script.ast);
|
|
53
56
|
const incomingFileName = context.language.typescript?.asFileName(vscode_uri_1.URI.parse(importUri))
|
|
54
57
|
?? vscode_uri_1.URI.parse(importUri).fsPath.replace(/\\/g, '/');
|
package/lib/plugins/vue-sfc.js
CHANGED
|
@@ -52,7 +52,7 @@ function create() {
|
|
|
52
52
|
provideDocumentLinks: undefined,
|
|
53
53
|
async resolveEmbeddedCodeFormattingOptions(sourceScript, virtualCode, options) {
|
|
54
54
|
if (sourceScript.generated?.root instanceof vue.VueVirtualCode) {
|
|
55
|
-
if (virtualCode.id === '
|
|
55
|
+
if (virtualCode.id === 'script_raw' || virtualCode.id === 'scriptsetup_raw') {
|
|
56
56
|
if (await context.env.getConfiguration?.('vue.format.script.initialIndent') ?? false) {
|
|
57
57
|
options.initialIndentLevel++;
|
|
58
58
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { LanguageServiceContext
|
|
2
|
-
import { LanguageServicePlugin
|
|
3
|
-
export declare function create(mode: 'html' | 'pug', ts: typeof import('typescript'),
|
|
1
|
+
import type { LanguageServiceContext } from '@volar/language-service';
|
|
2
|
+
import { LanguageServicePlugin } from '../types';
|
|
3
|
+
export declare function create(mode: 'html' | 'pug', ts: typeof import('typescript'), getTsPluginClient?: (context: LanguageServiceContext) => typeof import('@vue/typescript-plugin/lib/client') | undefined): LanguageServicePlugin;
|
|
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.create = create;
|
|
4
4
|
const language_core_1 = require("@vue/language-core");
|
|
5
5
|
const shared_1 = require("@vue/shared");
|
|
6
|
+
const common_1 = require("@vue/typescript-plugin/lib/common");
|
|
6
7
|
const volar_service_html_1 = require("volar-service-html");
|
|
7
8
|
const volar_service_pug_1 = require("volar-service-pug");
|
|
8
9
|
const html = require("vscode-html-languageservice");
|
|
10
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
9
11
|
const nameCasing_1 = require("../ideFeatures/nameCasing");
|
|
10
12
|
const types_1 = require("../types");
|
|
11
13
|
const data_1 = require("./data");
|
|
12
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
13
|
-
const common_1 = require("@vue/typescript-plugin/lib/common");
|
|
14
14
|
let builtInData;
|
|
15
15
|
let modelData;
|
|
16
|
-
function create(mode, ts,
|
|
16
|
+
function create(mode, ts, getTsPluginClient) {
|
|
17
17
|
let customData = [];
|
|
18
18
|
let extraCustomData = [];
|
|
19
19
|
let lastCompletionComponentNames = new Set();
|
|
@@ -69,7 +69,6 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
69
69
|
create(context) {
|
|
70
70
|
const tsPluginClient = getTsPluginClient?.(context);
|
|
71
71
|
const baseServiceInstance = baseService.create(context);
|
|
72
|
-
const vueCompilerOptions = getVueOptions(context.env);
|
|
73
72
|
builtInData ??= (0, data_1.loadTemplateData)(context.env.locale ?? 'en');
|
|
74
73
|
modelData ??= (0, data_1.loadModelModifiersData)(context.env.locale ?? 'en');
|
|
75
74
|
// https://vuejs.org/api/built-in-directives.html#v-on
|
|
@@ -112,6 +111,10 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
112
111
|
if (!isSupportedDocument(document)) {
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
114
|
+
if (!context.language.vue) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const vueCompilerOptions = context.language.vue.compilerOptions;
|
|
115
118
|
let sync;
|
|
116
119
|
let currentVersion;
|
|
117
120
|
const decoded = context.decodeEmbeddedDocumentUri(vscode_uri_1.URI.parse(document.uri));
|
|
@@ -119,7 +122,7 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
119
122
|
if (sourceScript?.generated?.root instanceof language_core_1.VueVirtualCode) {
|
|
120
123
|
// #4298: Precompute HTMLDocument before provideHtmlData to avoid parseHTMLDocument requesting component names from tsserver
|
|
121
124
|
baseServiceInstance.provideCompletionItems?.(document, position, completionContext, token);
|
|
122
|
-
sync = (await provideHtmlData(sourceScript.id, sourceScript.generated.root)).sync;
|
|
125
|
+
sync = (await provideHtmlData(vueCompilerOptions, sourceScript.id, sourceScript.generated.root)).sync;
|
|
123
126
|
currentVersion = await sync();
|
|
124
127
|
}
|
|
125
128
|
let htmlComplete = await baseServiceInstance.provideCompletionItems?.(document, position, completionContext, token);
|
|
@@ -138,6 +141,10 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
138
141
|
if (!isSupportedDocument(document)) {
|
|
139
142
|
return;
|
|
140
143
|
}
|
|
144
|
+
if (!context.language.vue) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const vueCompilerOptions = context.language.vue.compilerOptions;
|
|
141
148
|
const enabled = await context.env.getConfiguration?.('vue.inlayHints.missingProps') ?? false;
|
|
142
149
|
if (!enabled) {
|
|
143
150
|
return;
|
|
@@ -298,6 +305,10 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
298
305
|
if (!isSupportedDocument(document)) {
|
|
299
306
|
return;
|
|
300
307
|
}
|
|
308
|
+
if (!context.language.vue) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const vueCompilerOptions = context.language.vue.compilerOptions;
|
|
301
312
|
const languageService = context.inject('typescript/languageService');
|
|
302
313
|
if (!languageService) {
|
|
303
314
|
return;
|
|
@@ -314,7 +325,7 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
314
325
|
files: context.language.scripts,
|
|
315
326
|
languageService,
|
|
316
327
|
typescript: ts,
|
|
317
|
-
vueOptions:
|
|
328
|
+
vueOptions: vueCompilerOptions,
|
|
318
329
|
}, sourceScript.generated.root, template, {
|
|
319
330
|
start: document.offsetAt(range.start),
|
|
320
331
|
length: document.offsetAt(range.end) - document.offsetAt(range.start),
|
|
@@ -332,7 +343,7 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
332
343
|
});
|
|
333
344
|
},
|
|
334
345
|
};
|
|
335
|
-
async function provideHtmlData(sourceDocumentUri, vueCode) {
|
|
346
|
+
async function provideHtmlData(vueCompilerOptions, sourceDocumentUri, vueCode) {
|
|
336
347
|
await (initializing ??= initialize());
|
|
337
348
|
const casing = await (0, nameCasing_1.getNameCasing)(context, sourceDocumentUri);
|
|
338
349
|
if (builtInData.tags) {
|
|
@@ -378,7 +389,9 @@ function create(mode, ts, getVueOptions, getTsPluginClient) {
|
|
|
378
389
|
})());
|
|
379
390
|
return [];
|
|
380
391
|
}
|
|
381
|
-
const scriptSetupRanges = vueCode.sfc.scriptSetup
|
|
392
|
+
const scriptSetupRanges = vueCode.sfc.scriptSetup
|
|
393
|
+
? (0, language_core_1.parseScriptSetupRanges)(ts, vueCode.sfc.scriptSetup.ast, vueCompilerOptions)
|
|
394
|
+
: undefined;
|
|
382
395
|
const names = new Set();
|
|
383
396
|
const tags = [];
|
|
384
397
|
for (const tag of components) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-service",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.23-alpha.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"data",
|
|
@@ -16,23 +16,23 @@
|
|
|
16
16
|
"update-html-data": "node ./scripts/update-html-data.js"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@volar/language-core": "~2.
|
|
20
|
-
"@volar/language-service": "~2.
|
|
21
|
-
"@volar/typescript": "~2.
|
|
19
|
+
"@volar/language-core": "~2.4.0-alpha.0",
|
|
20
|
+
"@volar/language-service": "~2.4.0-alpha.0",
|
|
21
|
+
"@volar/typescript": "~2.4.0-alpha.0",
|
|
22
22
|
"@vue/compiler-dom": "^3.4.0",
|
|
23
|
-
"@vue/language-core": "2.0.
|
|
23
|
+
"@vue/language-core": "2.0.23-alpha.0",
|
|
24
24
|
"@vue/shared": "^3.4.0",
|
|
25
|
-
"@vue/typescript-plugin": "2.0.
|
|
25
|
+
"@vue/typescript-plugin": "2.0.23-alpha.0",
|
|
26
26
|
"computeds": "^0.0.1",
|
|
27
27
|
"path-browserify": "^1.0.1",
|
|
28
|
-
"volar-service-css": "0.0.
|
|
29
|
-
"volar-service-emmet": "0.0.
|
|
30
|
-
"volar-service-html": "0.0.
|
|
31
|
-
"volar-service-json": "0.0.
|
|
32
|
-
"volar-service-pug": "0.0.
|
|
33
|
-
"volar-service-pug-beautify": "0.0.
|
|
34
|
-
"volar-service-typescript": "0.0.
|
|
35
|
-
"volar-service-typescript-twoslash-queries": "0.0.
|
|
28
|
+
"volar-service-css": "0.0.55",
|
|
29
|
+
"volar-service-emmet": "0.0.55",
|
|
30
|
+
"volar-service-html": "0.0.55",
|
|
31
|
+
"volar-service-json": "0.0.55",
|
|
32
|
+
"volar-service-pug": "0.0.55",
|
|
33
|
+
"volar-service-pug-beautify": "0.0.55",
|
|
34
|
+
"volar-service-typescript": "0.0.55",
|
|
35
|
+
"volar-service-typescript-twoslash-queries": "0.0.55",
|
|
36
36
|
"vscode-html-languageservice": "^5.2.0",
|
|
37
37
|
"vscode-languageserver-textdocument": "^1.0.11",
|
|
38
38
|
"vscode-uri": "^3.0.8"
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "latest",
|
|
42
42
|
"@types/path-browserify": "latest",
|
|
43
|
-
"@volar/kit": "~2.
|
|
43
|
+
"@volar/kit": "~2.4.0-alpha.0",
|
|
44
44
|
"vscode-languageserver-protocol": "^3.17.5"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "c1b2f64df85617643c1b4b408d99447df3fa2d5f"
|
|
47
47
|
}
|