@vue/language-service 2.0.22 → 2.0.23-alpha.1

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 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, LanguageServiceContext, LanguageServiceEnvironment } from '@volar/language-service';
6
- import type { VueCompilerOptions } from './lib/types';
7
- export declare function getVueLanguageServicePlugins(ts: typeof import('typescript'), getVueOptions: (env: LanguageServiceEnvironment) => VueCompilerOptions, getTsPluginClient?: (context: LanguageServiceContext) => typeof import("@vue/typescript-plugin/lib/client") | undefined, hybridMode?: boolean): LanguageServicePlugin[];
8
- export declare function createDefaultGetTsPluginClient(ts: typeof import('typescript')): (context: LanguageServiceContext) => typeof import('@vue/typescript-plugin/lib/client') | undefined;
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.getVueLanguageServicePlugins = getVueLanguageServicePlugins;
18
- exports.createDefaultGetTsPluginClient = createDefaultGetTsPluginClient;
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
- function getVueLanguageServicePlugins(ts, getVueOptions, getTsPluginClient = createDefaultGetTsPluginClient(ts), hybridMode = false) {
50
- const plugins = [];
51
- if (!hybridMode) {
52
- plugins.push(...(0, volar_service_typescript_1.create)(ts));
53
- for (let i = 0; i < plugins.length; i++) {
54
- const plugin = plugins[i];
55
- if (plugin.name === 'typescript-semantic') {
56
- plugins[i] = {
57
- ...plugin,
58
- create(context) {
59
- const created = plugin.create(context);
60
- if (!context.language.typescript) {
61
- return created;
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
- break;
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 { VueCompilerOptions } from '@vue/language-core';
2
- import { LanguageServiceContext, LanguageServiceEnvironment, LanguageServicePlugin } from '../types';
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, getVueOptions, getTsPluginClient) {
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 = getVueOptions(context.env);
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 ? 'scriptSetupFormat' : 'scriptFormat'));
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, '/');
@@ -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 === 'scriptFormat' || virtualCode.id === 'scriptSetupFormat') {
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, LanguageServiceEnvironment } from '@volar/language-service';
2
- import { LanguageServicePlugin, VueCompilerOptions } from '../types';
3
- export declare function create(mode: 'html' | 'pug', ts: typeof import('typescript'), getVueOptions: (env: LanguageServiceEnvironment) => VueCompilerOptions, getTsPluginClient?: (context: LanguageServiceContext) => typeof import('@vue/typescript-plugin/lib/client') | undefined): LanguageServicePlugin;
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, getVueOptions, getTsPluginClient) {
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: getVueOptions(context.env),
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 ? (0, language_core_1.parseScriptSetupRanges)(ts, vueCode.sfc.scriptSetup.ast, vueCompilerOptions) : undefined;
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.22",
3
+ "version": "2.0.23-alpha.1",
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.3.1",
20
- "@volar/language-service": "~2.3.1",
21
- "@volar/typescript": "~2.3.1",
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.22",
23
+ "@vue/language-core": "2.0.23-alpha.1",
24
24
  "@vue/shared": "^3.4.0",
25
- "@vue/typescript-plugin": "2.0.22",
25
+ "@vue/typescript-plugin": "2.0.23-alpha.1",
26
26
  "computeds": "^0.0.1",
27
27
  "path-browserify": "^1.0.1",
28
- "volar-service-css": "0.0.52",
29
- "volar-service-emmet": "0.0.52",
30
- "volar-service-html": "0.0.52",
31
- "volar-service-json": "0.0.52",
32
- "volar-service-pug": "0.0.52",
33
- "volar-service-pug-beautify": "0.0.52",
34
- "volar-service-typescript": "0.0.52",
35
- "volar-service-typescript-twoslash-queries": "0.0.52",
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.3.1",
43
+ "@volar/kit": "~2.4.0-alpha.0",
44
44
  "vscode-languageserver-protocol": "^3.17.5"
45
45
  },
46
- "gitHead": "884c8a553d4fd240167fcb97c6a738564f9d697a"
46
+ "gitHead": "70cb34e9d58afd603d50cb5b870116b189f4662b"
47
47
  }