@vue/typescript-plugin 2.2.10 → 2.2.12

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/common.js CHANGED
@@ -14,7 +14,6 @@ function proxyLanguageServiceForVue(ts, language, languageService, vueOptions, a
14
14
  case 'getCompletionsAtPosition': return getCompletionsAtPosition(vueOptions, target[p]);
15
15
  case 'getCompletionEntryDetails': return getCompletionEntryDetails(language, asScriptId, target[p]);
16
16
  case 'getCodeFixesAtPosition': return getCodeFixesAtPosition(target[p]);
17
- case 'getDefinitionAndBoundSpan': return getDefinitionAndBoundSpan(ts, language, languageService, vueOptions, asScriptId, target[p]);
18
17
  case 'getQuickInfoAtPosition': return getQuickInfoAtPosition(ts, target, target[p]);
19
18
  // TS plugin only
20
19
  case 'getEncodedSemanticClassifications': return getEncodedSemanticClassifications(ts, language, target, asScriptId, target[p]);
@@ -130,77 +129,6 @@ function getCodeFixesAtPosition(getCodeFixesAtPosition) {
130
129
  return result;
131
130
  };
132
131
  }
133
- function getDefinitionAndBoundSpan(ts, language, languageService, vueOptions, asScriptId, getDefinitionAndBoundSpan) {
134
- return (fileName, position) => {
135
- const result = getDefinitionAndBoundSpan(fileName, position);
136
- if (!result?.definitions?.length) {
137
- return result;
138
- }
139
- const program = languageService.getProgram();
140
- const sourceScript = language.scripts.get(asScriptId(fileName));
141
- if (!sourceScript?.generated) {
142
- return result;
143
- }
144
- const root = sourceScript.generated.root;
145
- if (!(root instanceof language_core_1.VueVirtualCode)) {
146
- return result;
147
- }
148
- if (!root.sfc.template
149
- || position < root.sfc.template.startTagEnd
150
- || position > root.sfc.template.endTagStart) {
151
- return result;
152
- }
153
- const definitions = new Set(result.definitions);
154
- const skippedDefinitions = [];
155
- for (const definition of result.definitions) {
156
- if (vueOptions.extensions.some(ext => definition.fileName.endsWith(ext))) {
157
- continue;
158
- }
159
- const sourceFile = program.getSourceFile(definition.fileName);
160
- if (!sourceFile) {
161
- continue;
162
- }
163
- visit(sourceFile, definition, sourceFile);
164
- }
165
- for (const definition of skippedDefinitions) {
166
- definitions.delete(definition);
167
- }
168
- return {
169
- definitions: [...definitions],
170
- textSpan: result.textSpan,
171
- };
172
- function visit(node, definition, sourceFile) {
173
- if (ts.isPropertySignature(node) && node.type) {
174
- proxy(node.name, node.type, definition, sourceFile);
175
- }
176
- else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.type && !node.initializer) {
177
- proxy(node.name, node.type, definition, sourceFile);
178
- }
179
- else {
180
- ts.forEachChild(node, child => visit(child, definition, sourceFile));
181
- }
182
- }
183
- function proxy(name, type, definition, sourceFile) {
184
- const { textSpan, fileName } = definition;
185
- const start = name.getStart(sourceFile);
186
- const end = name.getEnd();
187
- if (start !== textSpan.start || end - start !== textSpan.length) {
188
- return;
189
- }
190
- if (!ts.isIndexedAccessTypeNode(type)) {
191
- return;
192
- }
193
- const pos = type.indexType.getStart(sourceFile);
194
- const res = getDefinitionAndBoundSpan(fileName, pos);
195
- if (res?.definitions?.length) {
196
- for (const definition of res.definitions) {
197
- definitions.add(definition);
198
- }
199
- skippedDefinitions.push(definition);
200
- }
201
- }
202
- };
203
- }
204
132
  function getQuickInfoAtPosition(ts, languageService, getQuickInfoAtPosition) {
205
133
  return (...args) => {
206
134
  const result = getQuickInfoAtPosition(...args);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/typescript-plugin",
3
- "version": "2.2.10",
3
+ "version": "2.2.12",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -13,12 +13,12 @@
13
13
  "directory": "packages/typescript-plugin"
14
14
  },
15
15
  "dependencies": {
16
- "@volar/typescript": "~2.4.11",
17
- "@vue/language-core": "2.2.10",
16
+ "@volar/typescript": "2.4.15",
17
+ "@vue/language-core": "2.2.12",
18
18
  "@vue/shared": "^3.5.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^22.10.4"
22
22
  },
23
- "gitHead": "0422c03ffa4958431c9cd3cd19ae51f726c30b07"
23
+ "gitHead": "0b13bf1966398ea3949b6b02d09b251ddc9a51eb"
24
24
  }
package/lib/commands.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { type Language } from '@vue/language-core';
2
- import type * as ts from 'typescript';
3
- export declare function addVueCommands(ts: typeof import('typescript'), info: ts.server.PluginCreateInfo, project2Service: Map<ts.server.Project, [Language, ts.LanguageServiceHost, ts.LanguageService]>): void;
package/lib/commands.js DELETED
@@ -1,136 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addVueCommands = addVueCommands;
4
- const language_core_1 = require("@vue/language-core");
5
- const collectExtractProps_1 = require("./requests/collectExtractProps");
6
- const getComponentDirectives_1 = require("./requests/getComponentDirectives");
7
- const getComponentEvents_1 = require("./requests/getComponentEvents");
8
- const getComponentNames_1 = require("./requests/getComponentNames");
9
- const getComponentProps_1 = require("./requests/getComponentProps");
10
- const getElementAttrs_1 = require("./requests/getElementAttrs");
11
- const getElementNames_1 = require("./requests/getElementNames");
12
- const getImportPathForFile_1 = require("./requests/getImportPathForFile");
13
- const getPropertiesAtLocation_1 = require("./requests/getPropertiesAtLocation");
14
- // https://github.com/JetBrains/intellij-plugins/blob/6435723ad88fa296b41144162ebe3b8513f4949b/Angular/src-js/angular-service/src/index.ts#L69
15
- function addVueCommands(ts, info, project2Service) {
16
- const projectService = info.project.projectService;
17
- projectService.logger.info("Vue: called handler processing " + info.project.projectKind);
18
- const session = info.session;
19
- if (session == undefined) {
20
- projectService.logger.info("Vue: there is no session in info.");
21
- return;
22
- }
23
- if (session.addProtocolHandler == undefined) {
24
- // addProtocolHandler was introduced in TS 4.4 or 4.5 in 2021, see https://github.com/microsoft/TypeScript/issues/43893
25
- projectService.logger.info("Vue: there is no addProtocolHandler method.");
26
- return;
27
- }
28
- if (session.vueCommandsAdded) {
29
- return;
30
- }
31
- session.vueCommandsAdded = true;
32
- const isCaseSensitive = info.languageServiceHost.useCaseSensitiveFileNames?.() ?? false;
33
- let lastProjectVersion;
34
- let scriptInfos = new language_core_1.FileMap(isCaseSensitive);
35
- session.addProtocolHandler('vue:isProjectUpdated', () => {
36
- const projectVersion = info.project.getProjectVersion();
37
- if (projectVersion === lastProjectVersion) {
38
- return { response: 'no' };
39
- }
40
- lastProjectVersion = projectVersion;
41
- const [, [language, languageServiceHost]] = [...project2Service].find(([project]) => project.projectKind === ts.server.ProjectKind.Configured);
42
- const fileNames = languageServiceHost.getScriptFileNames();
43
- const infos = new language_core_1.FileMap(isCaseSensitive);
44
- let isAnyScriptVersionChanged = false;
45
- let isAnyScriptSnapshotChanged = false;
46
- for (const file of fileNames) {
47
- const scriptVersion = languageServiceHost.getScriptVersion(file);
48
- const scriptInfo = scriptInfos.get(file) ?? { version: "" };
49
- infos.set(file, scriptInfo);
50
- if (scriptInfo.version === scriptVersion) {
51
- continue;
52
- }
53
- scriptInfo.version = scriptVersion;
54
- isAnyScriptVersionChanged = true;
55
- const volarFile = language.scripts.get(file);
56
- const root = volarFile?.generated?.root;
57
- const serviceScript = volarFile?.generated?.languagePlugin.typescript?.getServiceScript(root);
58
- if (!serviceScript) {
59
- isAnyScriptSnapshotChanged = true;
60
- continue;
61
- }
62
- const { snapshot } = serviceScript.code;
63
- if (scriptInfo.snapshot !== snapshot) {
64
- scriptInfo.snapshot = snapshot;
65
- isAnyScriptSnapshotChanged = true;
66
- }
67
- }
68
- scriptInfos = infos;
69
- return { response: isAnyScriptSnapshotChanged || !isAnyScriptVersionChanged ? 'yes' : 'no' };
70
- });
71
- session.addProtocolHandler('vue:collectExtractProps', ({ arguments: args }) => {
72
- return {
73
- response: collectExtractProps_1.collectExtractProps.apply(getRequestContext(args[0]), args),
74
- };
75
- });
76
- session.addProtocolHandler('vue:getImportPathForFile', ({ arguments: args }) => {
77
- return {
78
- response: getImportPathForFile_1.getImportPathForFile.apply(getRequestContext(args[0]), args),
79
- };
80
- });
81
- session.addProtocolHandler('vue:getPropertiesAtLocation', ({ arguments: args }) => {
82
- return {
83
- response: getPropertiesAtLocation_1.getPropertiesAtLocation.apply(getRequestContext(args[0]), args),
84
- };
85
- });
86
- session.addProtocolHandler('vue:getComponentNames', ({ arguments: args }) => {
87
- return {
88
- response: getComponentNames_1.getComponentNames.apply(getRequestContext(args[0]), args),
89
- };
90
- });
91
- session.addProtocolHandler('vue:getComponentProps', ({ arguments: args }) => {
92
- return {
93
- response: getComponentProps_1.getComponentProps.apply(getRequestContext(args[0]), args),
94
- };
95
- });
96
- session.addProtocolHandler('vue:getComponentEvents', ({ arguments: args }) => {
97
- return {
98
- response: getComponentEvents_1.getComponentEvents.apply(getRequestContext(args[0]), args),
99
- };
100
- });
101
- session.addProtocolHandler('vue:getComponentDirectives', ({ arguments: args }) => {
102
- return {
103
- response: getComponentDirectives_1.getComponentDirectives.apply(getRequestContext(args[0]), args),
104
- };
105
- });
106
- session.addProtocolHandler('vue:getElementAttrs', ({ arguments: args }) => {
107
- return {
108
- response: getElementAttrs_1.getElementAttrs.apply(getRequestContext(args[0]), args),
109
- };
110
- });
111
- session.addProtocolHandler('vue:getElementNames', ({ arguments: args }) => {
112
- return {
113
- response: getElementNames_1.getElementNames.apply(getRequestContext(args[0]), args),
114
- };
115
- });
116
- projectService.logger.info('Vue specific commands are successfully added.');
117
- function getRequestContext(fileName) {
118
- const fileAndProject = info.session.getFileAndProject({
119
- file: fileName,
120
- projectFileName: undefined,
121
- });
122
- const service = project2Service.get(fileAndProject.project);
123
- if (!service) {
124
- throw 'No RequestContext';
125
- }
126
- return {
127
- typescript: ts,
128
- languageService: service[2],
129
- languageServiceHost: service[1],
130
- language: service[0],
131
- isTsPlugin: true,
132
- getFileId: (fileName) => fileName,
133
- };
134
- }
135
- }
136
- //# sourceMappingURL=commands.js.map
package/lib/proxy.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Language, VueCompilerOptions } from '@vue/language-core';
2
- import type * as ts from 'typescript';
3
- export declare function proxyLanguageServiceForVue<T>(ts: typeof import('typescript'), language: Language<T>, languageService: ts.LanguageService, vueOptions: VueCompilerOptions, asScriptId: (fileName: string) => T): ts.LanguageService;
package/lib/proxy.js DELETED
@@ -1,305 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.proxyLanguageServiceForVue = proxyLanguageServiceForVue;
4
- const language_core_1 = require("@vue/language-core");
5
- const shared_1 = require("@vue/shared");
6
- const getComponentNames_1 = require("./requests/getComponentNames");
7
- const getElementNames_1 = require("./requests/getElementNames");
8
- const windowsPathReg = /\\/g;
9
- function proxyLanguageServiceForVue(ts, language, languageService, vueOptions, asScriptId) {
10
- const proxyCache = new Map();
11
- const getProxyMethod = (target, p) => {
12
- switch (p) {
13
- case 'getCompletionsAtPosition': return getCompletionsAtPosition(vueOptions, target[p]);
14
- case 'getCompletionEntryDetails': return getCompletionEntryDetails(language, asScriptId, target[p]);
15
- case 'getCodeFixesAtPosition': return getCodeFixesAtPosition(target[p]);
16
- case 'getDefinitionAndBoundSpan': return getDefinitionAndBoundSpan(ts, language, languageService, vueOptions, asScriptId, target[p]);
17
- case 'getQuickInfoAtPosition': return getQuickInfoAtPosition(ts, target, target[p]);
18
- // TS plugin only
19
- case 'getEncodedSemanticClassifications': return getEncodedSemanticClassifications(ts, language, target, asScriptId, target[p]);
20
- }
21
- };
22
- return new Proxy(languageService, {
23
- get(target, p, receiver) {
24
- if (getProxyMethod) {
25
- if (!proxyCache.has(p)) {
26
- proxyCache.set(p, getProxyMethod(target, p));
27
- }
28
- const proxyMethod = proxyCache.get(p);
29
- if (proxyMethod) {
30
- return proxyMethod;
31
- }
32
- }
33
- return Reflect.get(target, p, receiver);
34
- },
35
- set(target, p, value, receiver) {
36
- return Reflect.set(target, p, value, receiver);
37
- },
38
- });
39
- }
40
- function getCompletionsAtPosition(vueOptions, getCompletionsAtPosition) {
41
- return (filePath, position, options, formattingSettings) => {
42
- const fileName = filePath.replace(windowsPathReg, '/');
43
- const result = getCompletionsAtPosition(fileName, position, options, formattingSettings);
44
- if (result) {
45
- // filter __VLS_
46
- result.entries = result.entries.filter(entry => !entry.name.includes('__VLS_')
47
- && !entry.labelDetails?.description?.includes('__VLS_'));
48
- // modify label
49
- for (const item of result.entries) {
50
- if (item.source) {
51
- const originalName = item.name;
52
- for (const vueExt of vueOptions.extensions) {
53
- const suffix = (0, shared_1.capitalize)(vueExt.slice(1)); // .vue -> Vue
54
- if (item.source.endsWith(vueExt) && item.name.endsWith(suffix)) {
55
- item.name = (0, shared_1.capitalize)(item.name.slice(0, -suffix.length));
56
- if (item.insertText) {
57
- // #2286
58
- item.insertText = item.insertText.replace(`${suffix}$1`, '$1');
59
- }
60
- if (item.data) {
61
- // @ts-expect-error
62
- item.data.__isComponentAutoImport = {
63
- ext: vueExt,
64
- suffix,
65
- originalName,
66
- newName: item.insertText,
67
- };
68
- }
69
- break;
70
- }
71
- }
72
- if (item.data) {
73
- // @ts-expect-error
74
- item.data.__isAutoImport = {
75
- fileName,
76
- };
77
- }
78
- }
79
- }
80
- }
81
- return result;
82
- };
83
- }
84
- function getCompletionEntryDetails(language, asScriptId, getCompletionEntryDetails) {
85
- return (...args) => {
86
- const details = getCompletionEntryDetails(...args);
87
- // modify import statement
88
- // @ts-expect-error
89
- if (args[6]?.__isComponentAutoImport) {
90
- // @ts-expect-error
91
- const { ext, suffix, originalName, newName } = args[6]?.__isComponentAutoImport;
92
- for (const codeAction of details?.codeActions ?? []) {
93
- for (const change of codeAction.changes) {
94
- for (const textChange of change.textChanges) {
95
- textChange.newText = textChange.newText.replace('import ' + originalName + ' from ', 'import ' + newName + ' from ');
96
- }
97
- }
98
- }
99
- }
100
- // @ts-expect-error
101
- if (args[6]?.__isAutoImport) {
102
- // @ts-expect-error
103
- const { fileName } = args[6]?.__isAutoImport;
104
- const sourceScript = language.scripts.get(asScriptId(fileName));
105
- if (sourceScript?.generated?.root instanceof language_core_1.VueVirtualCode) {
106
- const sfc = sourceScript.generated.root.vueSfc;
107
- if (!sfc?.descriptor.script && !sfc?.descriptor.scriptSetup) {
108
- for (const codeAction of details?.codeActions ?? []) {
109
- for (const change of codeAction.changes) {
110
- for (const textChange of change.textChanges) {
111
- textChange.newText = `<script setup lang="ts">${textChange.newText}</script>\n\n`;
112
- break;
113
- }
114
- break;
115
- }
116
- break;
117
- }
118
- }
119
- }
120
- }
121
- return details;
122
- };
123
- }
124
- function getCodeFixesAtPosition(getCodeFixesAtPosition) {
125
- return (...args) => {
126
- let result = getCodeFixesAtPosition(...args);
127
- // filter __VLS_
128
- result = result.filter(entry => !entry.description.includes('__VLS_'));
129
- return result;
130
- };
131
- }
132
- function getDefinitionAndBoundSpan(ts, language, languageService, vueOptions, asScriptId, getDefinitionAndBoundSpan) {
133
- return (fileName, position) => {
134
- const result = getDefinitionAndBoundSpan(fileName, position);
135
- if (!result?.definitions?.length) {
136
- return result;
137
- }
138
- const program = languageService.getProgram();
139
- const sourceScript = language.scripts.get(asScriptId(fileName));
140
- if (!sourceScript?.generated) {
141
- return result;
142
- }
143
- const root = sourceScript.generated.root;
144
- if (!(root instanceof language_core_1.VueVirtualCode)) {
145
- return result;
146
- }
147
- if (!root.sfc.template
148
- || position < root.sfc.template.startTagEnd
149
- || position > root.sfc.template.endTagStart) {
150
- return result;
151
- }
152
- const definitions = new Set(result.definitions);
153
- const skippedDefinitions = [];
154
- // #5275
155
- if (result.definitions.length >= 2) {
156
- for (const definition of result.definitions) {
157
- if (root.sfc.content[definition.textSpan.start - 1] === '@'
158
- || root.sfc.content.slice(definition.textSpan.start - 5, definition.textSpan.start) === 'v-on:') {
159
- skippedDefinitions.push(definition);
160
- }
161
- }
162
- }
163
- for (const definition of result.definitions) {
164
- if (vueOptions.extensions.some(ext => definition.fileName.endsWith(ext))) {
165
- continue;
166
- }
167
- const sourceFile = program.getSourceFile(definition.fileName);
168
- if (!sourceFile) {
169
- continue;
170
- }
171
- visit(sourceFile, definition, sourceFile);
172
- }
173
- for (const definition of skippedDefinitions) {
174
- definitions.delete(definition);
175
- }
176
- return {
177
- definitions: [...definitions],
178
- textSpan: result.textSpan,
179
- };
180
- function visit(node, definition, sourceFile) {
181
- if (ts.isPropertySignature(node) && node.type) {
182
- proxy(node.name, node.type, definition, sourceFile);
183
- }
184
- else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.type && !node.initializer) {
185
- proxy(node.name, node.type, definition, sourceFile);
186
- }
187
- else {
188
- ts.forEachChild(node, child => visit(child, definition, sourceFile));
189
- }
190
- }
191
- function proxy(name, type, definition, sourceFile) {
192
- const { textSpan, fileName } = definition;
193
- const start = name.getStart(sourceFile);
194
- const end = name.getEnd();
195
- if (start !== textSpan.start || end - start !== textSpan.length) {
196
- return;
197
- }
198
- if (!ts.isIndexedAccessTypeNode(type)) {
199
- return;
200
- }
201
- const pos = type.indexType.getStart(sourceFile);
202
- const res = getDefinitionAndBoundSpan(fileName, pos);
203
- if (res?.definitions?.length) {
204
- for (const definition of res.definitions) {
205
- definitions.add(definition);
206
- }
207
- skippedDefinitions.push(definition);
208
- }
209
- }
210
- };
211
- }
212
- function getQuickInfoAtPosition(ts, languageService, getQuickInfoAtPosition) {
213
- return (...args) => {
214
- const result = getQuickInfoAtPosition(...args);
215
- if (result && result.documentation?.length === 1 && result.documentation[0].text.startsWith('__VLS_emit,')) {
216
- const [_, emitVarName, eventName] = result.documentation[0].text.split(',');
217
- const program = languageService.getProgram();
218
- const typeChecker = program.getTypeChecker();
219
- const sourceFile = program.getSourceFile(args[0]);
220
- result.documentation = undefined;
221
- let symbolNode;
222
- sourceFile?.forEachChild(function visit(node) {
223
- if (ts.isIdentifier(node) && node.text === emitVarName) {
224
- symbolNode = node;
225
- }
226
- if (symbolNode) {
227
- return;
228
- }
229
- ts.forEachChild(node, visit);
230
- });
231
- if (symbolNode) {
232
- const emitSymbol = typeChecker.getSymbolAtLocation(symbolNode);
233
- if (emitSymbol) {
234
- const type = typeChecker.getTypeOfSymbolAtLocation(emitSymbol, symbolNode);
235
- const calls = type.getCallSignatures();
236
- for (const call of calls) {
237
- const callEventName = typeChecker.getTypeOfSymbolAtLocation(call.parameters[0], symbolNode).value;
238
- call.getJsDocTags();
239
- if (callEventName === eventName) {
240
- result.documentation = call.getDocumentationComment(typeChecker);
241
- result.tags = call.getJsDocTags();
242
- }
243
- }
244
- }
245
- }
246
- }
247
- return result;
248
- };
249
- }
250
- function getEncodedSemanticClassifications(ts, language, languageService, asScriptId, getEncodedSemanticClassifications) {
251
- return (filePath, span, format) => {
252
- const fileName = filePath.replace(windowsPathReg, '/');
253
- const result = getEncodedSemanticClassifications(fileName, span, format);
254
- const sourceScript = language.scripts.get(asScriptId(fileName));
255
- const root = sourceScript?.generated?.root;
256
- if (root instanceof language_core_1.VueVirtualCode) {
257
- const { template } = root.sfc;
258
- if (template) {
259
- for (const componentSpan of getComponentSpans.call({ typescript: ts, languageService }, root, template, {
260
- start: span.start - template.startTagEnd,
261
- length: span.length,
262
- })) {
263
- result.spans.push(componentSpan.start + template.startTagEnd, componentSpan.length, 256 // class
264
- );
265
- }
266
- }
267
- }
268
- return result;
269
- };
270
- }
271
- function getComponentSpans(vueCode, template, spanTemplateRange) {
272
- const { typescript: ts, languageService } = this;
273
- const result = [];
274
- const validComponentNames = (0, getComponentNames_1._getComponentNames)(ts, languageService, vueCode);
275
- const elements = new Set((0, getElementNames_1._getElementNames)(ts, languageService, vueCode));
276
- const components = new Set([
277
- ...validComponentNames,
278
- ...validComponentNames.map(language_core_1.hyphenateTag),
279
- ]);
280
- if (template.ast) {
281
- for (const node of (0, language_core_1.forEachElementNode)(template.ast)) {
282
- if (node.loc.end.offset <= spanTemplateRange.start || node.loc.start.offset >= (spanTemplateRange.start + spanTemplateRange.length)) {
283
- continue;
284
- }
285
- if (components.has(node.tag) && !elements.has(node.tag)) {
286
- let start = node.loc.start.offset;
287
- if (template.lang === 'html') {
288
- start += '<'.length;
289
- }
290
- result.push({
291
- start,
292
- length: node.tag.length,
293
- });
294
- if (template.lang === 'html' && !node.isSelfClosing) {
295
- result.push({
296
- start: node.loc.start.offset + node.loc.source.lastIndexOf(node.tag),
297
- length: node.tag.length,
298
- });
299
- }
300
- }
301
- }
302
- }
303
- return result;
304
- }
305
- //# sourceMappingURL=proxy.js.map
@@ -1,2 +0,0 @@
1
- import type { RequestContext } from './types';
2
- export declare function getDefineSlots(this: RequestContext, fileName: string): string[] | undefined;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefineSlots = getDefineSlots;
4
- const language_core_1 = require("@vue/language-core");
5
- const utils_1 = require("./utils");
6
- function getDefineSlots(fileName) {
7
- const { typescript: ts, language, languageService, getFileId } = this;
8
- const volarFile = language.scripts.get(getFileId(fileName));
9
- if (!(volarFile?.generated?.root instanceof language_core_1.VueVirtualCode)) {
10
- return;
11
- }
12
- const vueCode = volarFile.generated.root;
13
- const slots = (0, utils_1.getTypeAliasType)(ts, languageService, vueCode, '__VLS_Slots');
14
- return slots?.type.getProperties().map(prop => prop.getName());
15
- }
16
- //# sourceMappingURL=getDefineSlots.js.map
@@ -1,5 +0,0 @@
1
- import { VueVirtualCode } from '@vue/language-core';
2
- import type * as ts from 'typescript';
3
- import type { RequestContext } from './types';
4
- export declare function getElementNames(this: RequestContext, fileName: string): string[] | undefined;
5
- export declare function _getElementNames(ts: typeof import('typescript'), tsLs: ts.LanguageService, vueCode: VueVirtualCode): string[];
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getElementNames = getElementNames;
4
- exports._getElementNames = _getElementNames;
5
- const language_core_1 = require("@vue/language-core");
6
- const utils_1 = require("./utils");
7
- function getElementNames(fileName) {
8
- const { typescript: ts, language, languageService, getFileId } = this;
9
- const volarFile = language.scripts.get(getFileId(fileName));
10
- if (!(volarFile?.generated?.root instanceof language_core_1.VueVirtualCode)) {
11
- return;
12
- }
13
- const vueCode = volarFile.generated.root;
14
- return _getElementNames(ts, languageService, vueCode);
15
- }
16
- function _getElementNames(ts, tsLs, vueCode) {
17
- return (0, utils_1.getVariableType)(ts, tsLs, vueCode, '__VLS_elements')
18
- ?.type
19
- ?.getProperties()
20
- .map(c => c.name)
21
- ?? [];
22
- }
23
- //# sourceMappingURL=getElementNames.js.map
@@ -1,17 +0,0 @@
1
- type ToRequest<T extends (...args: any) => any> = (...args: Parameters<T>) => Promise<ReturnType<T> | null | undefined>;
2
- export type Requests = {
3
- collectExtractProps: ToRequest<typeof import('./collectExtractProps.js')['collectExtractProps']>;
4
- getImportPathForFile: ToRequest<typeof import('./getImportPathForFile.js')['getImportPathForFile']>;
5
- getPropertiesAtLocation: ToRequest<typeof import('./getPropertiesAtLocation.js')['getPropertiesAtLocation']>;
6
- getComponentNames: ToRequest<typeof import('./getComponentNames.js')['getComponentNames']>;
7
- getComponentProps: ToRequest<typeof import('./getComponentProps.js')['getComponentProps']>;
8
- getComponentEvents: ToRequest<typeof import('./getComponentEvents.js')['getComponentEvents']>;
9
- getComponentDirectives: ToRequest<typeof import('./getComponentDirectives.js')['getComponentDirectives']>;
10
- getElementAttrs: ToRequest<typeof import('./getElementAttrs.js')['getElementAttrs']>;
11
- getElementNames: ToRequest<typeof import('./getElementNames.js')['getElementNames']>;
12
- getQuickInfoAtPosition: ToRequest<(fileName: string, position: {
13
- line: number;
14
- character: number;
15
- }) => string>;
16
- };
17
- export {};
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=index.js.map