@vue/language-service 2.0.2 → 2.0.3
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 +1 -1
- package/index.js +6 -6
- package/lib/ideFeatures/nameCasing.d.ts +4 -4
- package/lib/ideFeatures/nameCasing.js +9 -10
- package/lib/plugins/vue-autoinsert-dotvalue.d.ts +1 -1
- package/lib/plugins/vue-autoinsert-dotvalue.js +2 -3
- package/lib/plugins/vue-extract-file.d.ts +1 -1
- package/lib/plugins/vue-extract-file.js +2 -3
- package/lib/plugins/vue-template.d.ts +1 -1
- package/lib/plugins/vue-template.js +12 -13
- package/lib/plugins/vue-twoslash-queries.d.ts +1 -1
- package/lib/plugins/vue-twoslash-queries.js +2 -3
- package/package.json +4 -4
package/index.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export * from './lib/ideFeatures/nameCasing';
|
|
|
4
4
|
export * from './lib/types';
|
|
5
5
|
import type { ServiceEnvironment, ServicePlugin } from '@volar/language-service';
|
|
6
6
|
import type { VueCompilerOptions } from './lib/types';
|
|
7
|
-
export declare function createVueServicePlugins(ts: typeof import('typescript'), getVueOptions: (env: ServiceEnvironment) => VueCompilerOptions): ServicePlugin[];
|
|
7
|
+
export declare function createVueServicePlugins(ts: typeof import('typescript'), getVueOptions: (env: ServiceEnvironment) => VueCompilerOptions, tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): ServicePlugin[];
|
package/index.js
CHANGED
|
@@ -37,25 +37,25 @@ const vue_template_1 = require("./lib/plugins/vue-template");
|
|
|
37
37
|
const vue_toggle_v_bind_codeaction_1 = require("./lib/plugins/vue-toggle-v-bind-codeaction");
|
|
38
38
|
const vue_twoslash_queries_1 = require("./lib/plugins/vue-twoslash-queries");
|
|
39
39
|
const vue_visualize_hidden_callback_param_1 = require("./lib/plugins/vue-visualize-hidden-callback-param");
|
|
40
|
-
function createVueServicePlugins(ts, getVueOptions) {
|
|
40
|
+
function createVueServicePlugins(ts, getVueOptions, tsPluginClient) {
|
|
41
41
|
return [
|
|
42
42
|
(0, volar_service_typescript_1.create)(ts),
|
|
43
43
|
(0, volar_service_typescript_twoslash_queries_1.create)(),
|
|
44
44
|
(0, css_1.create)(),
|
|
45
45
|
(0, volar_service_pug_beautify_1.create)(),
|
|
46
46
|
(0, volar_service_json_1.create)(),
|
|
47
|
-
(0, vue_template_1.create)('html', ts, getVueOptions),
|
|
48
|
-
(0, vue_template_1.create)('pug', ts, getVueOptions),
|
|
47
|
+
(0, vue_template_1.create)('html', ts, getVueOptions, tsPluginClient),
|
|
48
|
+
(0, vue_template_1.create)('pug', ts, getVueOptions, tsPluginClient),
|
|
49
49
|
(0, vue_sfc_1.create)(),
|
|
50
|
-
(0, vue_twoslash_queries_1.create)(ts),
|
|
50
|
+
(0, vue_twoslash_queries_1.create)(ts, tsPluginClient),
|
|
51
51
|
(0, vue_codelens_references_1.create)(),
|
|
52
52
|
(0, vue_document_drop_1.create)(ts),
|
|
53
|
-
(0, vue_autoinsert_dotvalue_1.create)(ts),
|
|
53
|
+
(0, vue_autoinsert_dotvalue_1.create)(ts, tsPluginClient),
|
|
54
54
|
(0, vue_autoinsert_parentheses_1.create)(ts),
|
|
55
55
|
(0, vue_autoinsert_space_1.create)(),
|
|
56
56
|
(0, vue_visualize_hidden_callback_param_1.create)(),
|
|
57
57
|
(0, vue_directive_comments_1.create)(),
|
|
58
|
-
(0, vue_extract_file_1.create)(ts),
|
|
58
|
+
(0, vue_extract_file_1.create)(ts, tsPluginClient),
|
|
59
59
|
(0, vue_toggle_v_bind_codeaction_1.create)(ts),
|
|
60
60
|
(0, volar_service_emmet_1.create)(),
|
|
61
61
|
];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ServiceContext } from '@volar/language-service';
|
|
2
2
|
import type * as vscode from 'vscode-languageserver-protocol';
|
|
3
3
|
import { AttrNameCasing, TagNameCasing } from '../types';
|
|
4
|
-
export declare function convertTagName(context: ServiceContext, uri: string, casing: TagNameCasing): Promise<vscode.TextEdit[] | undefined>;
|
|
5
|
-
export declare function convertAttrName(context: ServiceContext, uri: string, casing: AttrNameCasing): Promise<vscode.TextEdit[] | undefined>;
|
|
6
|
-
export declare function getNameCasing(context: ServiceContext, uri: string): Promise<{
|
|
4
|
+
export declare function convertTagName(context: ServiceContext, uri: string, casing: TagNameCasing, tsPluginClient: typeof import('@vue/typescript-plugin/lib/client')): Promise<vscode.TextEdit[] | undefined>;
|
|
5
|
+
export declare function convertAttrName(context: ServiceContext, uri: string, casing: AttrNameCasing, tsPluginClient: typeof import('@vue/typescript-plugin/lib/client')): Promise<vscode.TextEdit[] | undefined>;
|
|
6
|
+
export declare function getNameCasing(context: ServiceContext, uri: string, tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): Promise<{
|
|
7
7
|
tag: TagNameCasing;
|
|
8
8
|
attr: AttrNameCasing;
|
|
9
9
|
}>;
|
|
10
|
-
export declare function detect(context: ServiceContext, uri: string): Promise<{
|
|
10
|
+
export declare function detect(context: ServiceContext, uri: string, tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): Promise<{
|
|
11
11
|
tag: TagNameCasing[];
|
|
12
12
|
attr: AttrNameCasing[];
|
|
13
13
|
}>;
|
|
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.detect = exports.getNameCasing = exports.convertAttrName = exports.convertTagName = void 0;
|
|
4
4
|
const vue = require("@vue/language-core");
|
|
5
5
|
const language_core_1 = require("@vue/language-core");
|
|
6
|
-
const namedPipeClient = require("@vue/typescript-plugin/lib/client");
|
|
7
6
|
const computeds_1 = require("computeds");
|
|
8
7
|
const types_1 = require("../types");
|
|
9
|
-
async function convertTagName(context, uri, casing) {
|
|
8
|
+
async function convertTagName(context, uri, casing, tsPluginClient) {
|
|
10
9
|
const sourceFile = context.language.files.get(uri);
|
|
11
10
|
if (!sourceFile)
|
|
12
11
|
return;
|
|
@@ -19,7 +18,7 @@ async function convertTagName(context, uri, casing) {
|
|
|
19
18
|
const template = desc.template;
|
|
20
19
|
const document = context.documents.get(sourceFile.id, sourceFile.languageId, sourceFile.snapshot);
|
|
21
20
|
const edits = [];
|
|
22
|
-
const components = await
|
|
21
|
+
const components = await tsPluginClient.getComponentNames(rootCode.fileName) ?? [];
|
|
23
22
|
const tags = getTemplateTagsAndAttrs(rootCode);
|
|
24
23
|
for (const [tagName, { offsets }] of tags) {
|
|
25
24
|
const componentName = components.find(component => component === tagName || (0, language_core_1.hyphenateTag)(component) === tagName);
|
|
@@ -40,7 +39,7 @@ async function convertTagName(context, uri, casing) {
|
|
|
40
39
|
return edits;
|
|
41
40
|
}
|
|
42
41
|
exports.convertTagName = convertTagName;
|
|
43
|
-
async function convertAttrName(context, uri, casing) {
|
|
42
|
+
async function convertAttrName(context, uri, casing, tsPluginClient) {
|
|
44
43
|
const sourceFile = context.language.files.get(uri);
|
|
45
44
|
if (!sourceFile)
|
|
46
45
|
return;
|
|
@@ -53,12 +52,12 @@ async function convertAttrName(context, uri, casing) {
|
|
|
53
52
|
const template = desc.template;
|
|
54
53
|
const document = context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot);
|
|
55
54
|
const edits = [];
|
|
56
|
-
const components = await
|
|
55
|
+
const components = await tsPluginClient.getComponentNames(rootCode.fileName) ?? [];
|
|
57
56
|
const tags = getTemplateTagsAndAttrs(rootCode);
|
|
58
57
|
for (const [tagName, { attrs }] of tags) {
|
|
59
58
|
const componentName = components.find(component => component === tagName || (0, language_core_1.hyphenateTag)(component) === tagName);
|
|
60
59
|
if (componentName) {
|
|
61
|
-
const props = await
|
|
60
|
+
const props = await tsPluginClient.getComponentProps(rootCode.fileName, componentName) ?? [];
|
|
62
61
|
for (const [attrName, { offsets }] of attrs) {
|
|
63
62
|
const propName = props.find(prop => prop === attrName || (0, language_core_1.hyphenateAttr)(prop) === attrName);
|
|
64
63
|
if (propName) {
|
|
@@ -80,8 +79,8 @@ async function convertAttrName(context, uri, casing) {
|
|
|
80
79
|
return edits;
|
|
81
80
|
}
|
|
82
81
|
exports.convertAttrName = convertAttrName;
|
|
83
|
-
async function getNameCasing(context, uri) {
|
|
84
|
-
const detected = await detect(context, uri);
|
|
82
|
+
async function getNameCasing(context, uri, tsPluginClient) {
|
|
83
|
+
const detected = await detect(context, uri, tsPluginClient);
|
|
85
84
|
const [attr, tag] = await Promise.all([
|
|
86
85
|
context.env.getConfiguration?.('vue.complete.casing.props', uri),
|
|
87
86
|
context.env.getConfiguration?.('vue.complete.casing.tags', uri),
|
|
@@ -94,7 +93,7 @@ async function getNameCasing(context, uri) {
|
|
|
94
93
|
};
|
|
95
94
|
}
|
|
96
95
|
exports.getNameCasing = getNameCasing;
|
|
97
|
-
async function detect(context, uri) {
|
|
96
|
+
async function detect(context, uri, tsPluginClient) {
|
|
98
97
|
const rootFile = context.language.files.get(uri)?.generated?.code;
|
|
99
98
|
if (!(rootFile instanceof language_core_1.VueGeneratedCode)) {
|
|
100
99
|
return {
|
|
@@ -128,7 +127,7 @@ async function detect(context, uri) {
|
|
|
128
127
|
return result;
|
|
129
128
|
}
|
|
130
129
|
async function getTagNameCase(file) {
|
|
131
|
-
const components = await
|
|
130
|
+
const components = await tsPluginClient?.getComponentNames(file.fileName) ?? [];
|
|
132
131
|
const tagNames = getTemplateTagsAndAttrs(file);
|
|
133
132
|
const result = [];
|
|
134
133
|
let anyComponentUsed = false;
|
|
@@ -2,7 +2,7 @@ import type { ServicePlugin } from '@volar/language-service';
|
|
|
2
2
|
import type * as ts from 'typescript';
|
|
3
3
|
import type * as vscode from 'vscode-languageserver-protocol';
|
|
4
4
|
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
5
|
-
export declare function create(ts: typeof import('typescript')): ServicePlugin;
|
|
5
|
+
export declare function create(ts: typeof import('typescript'), tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): ServicePlugin;
|
|
6
6
|
export declare function isCharacterTyping(document: TextDocument, lastChange: {
|
|
7
7
|
range: vscode.Range;
|
|
8
8
|
text: string;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isBlacklistNode = exports.isCharacterTyping = exports.create = void 0;
|
|
4
4
|
const language_core_1 = require("@vue/language-core");
|
|
5
|
-
const namedPipeClient = require("@vue/typescript-plugin/lib/client");
|
|
6
5
|
const asts = new WeakMap();
|
|
7
6
|
function getAst(ts, fileName, snapshot, scriptKind) {
|
|
8
7
|
let ast = asts.get(snapshot);
|
|
@@ -12,7 +11,7 @@ function getAst(ts, fileName, snapshot, scriptKind) {
|
|
|
12
11
|
}
|
|
13
12
|
return ast;
|
|
14
13
|
}
|
|
15
|
-
function create(ts) {
|
|
14
|
+
function create(ts, tsPluginClient) {
|
|
16
15
|
return {
|
|
17
16
|
name: 'vue-autoinsert-dotvalue',
|
|
18
17
|
create(context) {
|
|
@@ -61,7 +60,7 @@ function create(ts) {
|
|
|
61
60
|
}
|
|
62
61
|
if (isBlacklistNode(ts, ast, document.offsetAt(position), false))
|
|
63
62
|
return;
|
|
64
|
-
const props = await
|
|
63
|
+
const props = await tsPluginClient?.getPropertiesAtLocation(fileName, sourceCodeOffset) ?? [];
|
|
65
64
|
if (props.some(prop => prop === 'value')) {
|
|
66
65
|
return '${1:.value}';
|
|
67
66
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ServicePlugin } from '@volar/language-service';
|
|
2
2
|
import type * as ts from 'typescript';
|
|
3
|
-
export declare function create(ts: typeof import('typescript')): ServicePlugin;
|
|
3
|
+
export declare function create(ts: typeof import('typescript'), tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): ServicePlugin;
|
|
4
4
|
export declare function getLastImportNode(ts: typeof import('typescript'), sourceFile: ts.SourceFile): ts.Node | undefined;
|
|
5
5
|
export declare function createAddComponentToOptionEdit(ts: typeof import('typescript'), ast: ts.SourceFile, componentName: string): {
|
|
6
6
|
range: import("@vue/language-core").TextRange;
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createAddComponentToOptionEdit = exports.getLastImportNode = exports.create = void 0;
|
|
4
4
|
const language_core_1 = require("@vue/language-core");
|
|
5
|
-
const client_1 = require("@vue/typescript-plugin/lib/client");
|
|
6
5
|
const unicodeReg = /\\u/g;
|
|
7
|
-
function create(ts) {
|
|
6
|
+
function create(ts, tsPluginClient) {
|
|
8
7
|
return {
|
|
9
8
|
name: 'vue-extract-file',
|
|
10
9
|
create(context) {
|
|
@@ -52,7 +51,7 @@ function create(ts) {
|
|
|
52
51
|
const templateCodeRange = selectTemplateCode(startOffset, endOffset, sfc.template);
|
|
53
52
|
if (!templateCodeRange)
|
|
54
53
|
return codeAction;
|
|
55
|
-
const toExtract = await
|
|
54
|
+
const toExtract = await tsPluginClient?.collectExtractProps(sourceFile.generated.code.fileName, templateCodeRange) ?? [];
|
|
56
55
|
if (!toExtract)
|
|
57
56
|
return codeAction;
|
|
58
57
|
const templateInitialIndent = await context.env.getConfiguration('vue.format.template.initialIndent') ?? true;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ServiceEnvironment } from '@volar/language-service';
|
|
2
2
|
import { ServicePlugin, VueCompilerOptions } from '../types';
|
|
3
|
-
export declare function create(mode: 'html' | 'pug', ts: typeof import('typescript'), getVueOptions: (env: ServiceEnvironment) => VueCompilerOptions): ServicePlugin;
|
|
3
|
+
export declare function create(mode: 'html' | 'pug', ts: typeof import('typescript'), getVueOptions: (env: ServiceEnvironment) => VueCompilerOptions, tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): ServicePlugin;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.create = void 0;
|
|
4
4
|
const language_core_1 = require("@vue/language-core");
|
|
5
5
|
const shared_1 = require("@vue/shared");
|
|
6
|
-
const namedPipeClient = require("@vue/typescript-plugin/lib/client");
|
|
7
6
|
const volar_service_html_1 = require("volar-service-html");
|
|
8
7
|
const volar_service_pug_1 = require("volar-service-pug");
|
|
9
8
|
const html = require("vscode-html-languageservice");
|
|
@@ -12,7 +11,7 @@ const types_1 = require("../types");
|
|
|
12
11
|
const data_1 = require("./data");
|
|
13
12
|
let builtInData;
|
|
14
13
|
let modelData;
|
|
15
|
-
function create(mode, ts, getVueOptions) {
|
|
14
|
+
function create(mode, ts, getVueOptions, tsPluginClient) {
|
|
16
15
|
let customData = [];
|
|
17
16
|
const onDidChangeCustomDataListeners = new Set();
|
|
18
17
|
const onDidChangeCustomData = (listener) => {
|
|
@@ -107,8 +106,8 @@ function create(mode, ts, getVueOptions) {
|
|
|
107
106
|
const scanner = getScanner(baseServiceInstance, document);
|
|
108
107
|
if (code instanceof language_core_1.VueGeneratedCode && scanner) {
|
|
109
108
|
// visualize missing required props
|
|
110
|
-
const casing = await (0, nameCasing_1.getNameCasing)(context, map.sourceDocument.uri);
|
|
111
|
-
const components = await
|
|
109
|
+
const casing = await (0, nameCasing_1.getNameCasing)(context, map.sourceDocument.uri, tsPluginClient);
|
|
110
|
+
const components = await tsPluginClient?.getComponentNames(code.fileName) ?? [];
|
|
112
111
|
const componentProps = {};
|
|
113
112
|
let token;
|
|
114
113
|
let current;
|
|
@@ -120,7 +119,7 @@ function create(mode, ts, getVueOptions) {
|
|
|
120
119
|
: components.find(component => component === tagName || (0, language_core_1.hyphenateTag)(component) === tagName);
|
|
121
120
|
const checkTag = tagName.indexOf('.') >= 0 ? tagName : component;
|
|
122
121
|
if (checkTag) {
|
|
123
|
-
componentProps[checkTag] ??= await
|
|
122
|
+
componentProps[checkTag] ??= await tsPluginClient?.getComponentProps(code.fileName, checkTag, true) ?? [];
|
|
124
123
|
current = {
|
|
125
124
|
unburnedRequiredProps: [...componentProps[checkTag]],
|
|
126
125
|
labelOffset: scanner.getTokenOffset() + scanner.getTokenLength(),
|
|
@@ -245,7 +244,7 @@ function create(mode, ts, getVueOptions) {
|
|
|
245
244
|
},
|
|
246
245
|
};
|
|
247
246
|
async function provideHtmlData(sourceDocumentUri, vueCode) {
|
|
248
|
-
const casing = await (0, nameCasing_1.getNameCasing)(context, sourceDocumentUri);
|
|
247
|
+
const casing = await (0, nameCasing_1.getNameCasing)(context, sourceDocumentUri, tsPluginClient);
|
|
249
248
|
if (builtInData.tags) {
|
|
250
249
|
for (const tag of builtInData.tags) {
|
|
251
250
|
if (tag.name === 'slot')
|
|
@@ -275,7 +274,7 @@ function create(mode, ts, getVueOptions) {
|
|
|
275
274
|
provideTags: () => {
|
|
276
275
|
if (!components) {
|
|
277
276
|
promises.push((async () => {
|
|
278
|
-
components = (await
|
|
277
|
+
components = (await tsPluginClient?.getComponentNames(vueCode.fileName) ?? [])
|
|
279
278
|
.filter(name => name !== 'Transition'
|
|
280
279
|
&& name !== 'TransitionGroup'
|
|
281
280
|
&& name !== 'KeepAlive'
|
|
@@ -314,14 +313,14 @@ function create(mode, ts, getVueOptions) {
|
|
|
314
313
|
return tags;
|
|
315
314
|
},
|
|
316
315
|
provideAttributes: (tag) => {
|
|
317
|
-
|
|
316
|
+
tsPluginClient?.getTemplateContextProps;
|
|
318
317
|
let failed = false;
|
|
319
318
|
let tagInfo = tagInfos.get(tag);
|
|
320
319
|
if (!tagInfo) {
|
|
321
320
|
promises.push((async () => {
|
|
322
|
-
const attrs = await
|
|
323
|
-
const props = await
|
|
324
|
-
const events = await
|
|
321
|
+
const attrs = await tsPluginClient?.getElementAttrs(vueCode.fileName, tag) ?? [];
|
|
322
|
+
const props = await tsPluginClient?.getComponentProps(vueCode.fileName, tag) ?? [];
|
|
323
|
+
const events = await tsPluginClient?.getComponentEvents(vueCode.fileName, tag) ?? [];
|
|
325
324
|
tagInfos.set(tag, {
|
|
326
325
|
attrs,
|
|
327
326
|
props,
|
|
@@ -340,7 +339,7 @@ function create(mode, ts, getVueOptions) {
|
|
|
340
339
|
if (_tsCodegen) {
|
|
341
340
|
if (!templateContextProps) {
|
|
342
341
|
promises.push((async () => {
|
|
343
|
-
templateContextProps = await
|
|
342
|
+
templateContextProps = await tsPluginClient?.getTemplateContextProps(vueCode.fileName) ?? [];
|
|
344
343
|
version++;
|
|
345
344
|
})());
|
|
346
345
|
return [];
|
|
@@ -442,7 +441,7 @@ function create(mode, ts, getVueOptions) {
|
|
|
442
441
|
}
|
|
443
442
|
async function afterHtmlCompletion(completionList, sourceDocument, code) {
|
|
444
443
|
const replacement = getReplacement(completionList, sourceDocument);
|
|
445
|
-
const componentNames = new Set((await
|
|
444
|
+
const componentNames = new Set((await tsPluginClient?.getComponentNames(code.fileName) ?? [])
|
|
446
445
|
.map(language_core_1.hyphenateTag));
|
|
447
446
|
if (replacement) {
|
|
448
447
|
const isEvent = replacement.text.startsWith('v-on:') || replacement.text.startsWith('@');
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ServicePlugin } from '@volar/language-service';
|
|
2
|
-
export declare function create(ts: typeof import('typescript')): ServicePlugin;
|
|
2
|
+
export declare function create(ts: typeof import('typescript'), tsPluginClient?: typeof import('@vue/typescript-plugin/lib/client')): ServicePlugin;
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.create = void 0;
|
|
4
4
|
const vue = require("@vue/language-core");
|
|
5
|
-
const client_1 = require("@vue/typescript-plugin/lib/client");
|
|
6
5
|
const twoslashReg = /<!--\s*\^\?\s*-->/g;
|
|
7
|
-
function create(ts) {
|
|
6
|
+
function create(ts, tsPluginClient) {
|
|
8
7
|
return {
|
|
9
8
|
name: 'vue-twoslash-queries',
|
|
10
9
|
create(context) {
|
|
@@ -26,7 +25,7 @@ function create(ts) {
|
|
|
26
25
|
for (const [pointerPosition, hoverOffset] of hoverOffsets) {
|
|
27
26
|
for (const [_1, [_2, map]] of context.language.files.getMaps(virtualCode)) {
|
|
28
27
|
for (const [sourceOffset] of map.getSourceOffsets(hoverOffset)) {
|
|
29
|
-
const quickInfo = await
|
|
28
|
+
const quickInfo = await tsPluginClient?.getQuickInfoAtPosition(sourceFile.generated.code.fileName, sourceOffset);
|
|
30
29
|
if (quickInfo) {
|
|
31
30
|
inlayHints.push({
|
|
32
31
|
position: { line: pointerPosition.line, character: pointerPosition.character + 2 },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-service",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"data",
|
|
@@ -20,9 +20,8 @@
|
|
|
20
20
|
"@volar/language-service": "~2.1.0",
|
|
21
21
|
"@volar/typescript": "~2.1.0",
|
|
22
22
|
"@vue/compiler-dom": "^3.4.0",
|
|
23
|
-
"@vue/language-core": "2.0.
|
|
23
|
+
"@vue/language-core": "2.0.3",
|
|
24
24
|
"@vue/shared": "^3.4.0",
|
|
25
|
-
"@vue/typescript-plugin": "2.0.2",
|
|
26
25
|
"computeds": "^0.0.1",
|
|
27
26
|
"path-browserify": "^1.0.1",
|
|
28
27
|
"volar-service-css": "0.0.31",
|
|
@@ -40,8 +39,9 @@
|
|
|
40
39
|
"@types/node": "latest",
|
|
41
40
|
"@types/path-browserify": "latest",
|
|
42
41
|
"@volar/kit": "~2.1.0",
|
|
42
|
+
"@vue/typescript-plugin": "2.0.3",
|
|
43
43
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
44
44
|
"vscode-uri": "^3.0.8"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "fc1e288c8c0c82e6730781006d84a2676b5266ff"
|
|
47
47
|
}
|