@vue/typescript-plugin 3.0.9 → 3.0.10
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.js +30 -44
- package/package.json +3 -3
package/index.js
CHANGED
|
@@ -12,8 +12,6 @@ const getElementAttrs_1 = require("./lib/requests/getElementAttrs");
|
|
|
12
12
|
const getElementNames_1 = require("./lib/requests/getElementNames");
|
|
13
13
|
const getImportPathForFile_1 = require("./lib/requests/getImportPathForFile");
|
|
14
14
|
const isRefAtPosition_1 = require("./lib/requests/isRefAtPosition");
|
|
15
|
-
const windowsPathReg = /\\/g;
|
|
16
|
-
const project2Service = new WeakMap();
|
|
17
15
|
module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)((ts, info) => {
|
|
18
16
|
const vueOptions = getVueCompilerOptions();
|
|
19
17
|
const languagePlugin = vue.createVueLanguagePlugin(ts, info.languageServiceHost.getCompilationSettings(), vueOptions, id => id);
|
|
@@ -22,21 +20,14 @@ module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)(
|
|
|
22
20
|
return {
|
|
23
21
|
languagePlugins: [languagePlugin],
|
|
24
22
|
setup: language => {
|
|
25
|
-
project2Service.set(info.project, [language, info.languageServiceHost, info.languageService]);
|
|
26
23
|
info.languageService = (0, common_1.createVueLanguageServiceProxy)(ts, language, info.languageService, vueOptions, fileName => fileName);
|
|
27
|
-
|
|
28
|
-
const timer = setInterval(() => {
|
|
29
|
-
if (info.project['program']) {
|
|
30
|
-
clearInterval(timer);
|
|
31
|
-
info.project['program'].__vue__ = { language };
|
|
32
|
-
}
|
|
33
|
-
}, 50);
|
|
24
|
+
info.project.__vue__ = { language };
|
|
34
25
|
},
|
|
35
26
|
};
|
|
36
27
|
function getVueCompilerOptions() {
|
|
37
28
|
if (info.project.projectKind === ts.server.ProjectKind.Configured) {
|
|
38
29
|
const tsconfig = info.project.getProjectName();
|
|
39
|
-
return vue.createParsedCommandLine(ts, ts.sys, tsconfig.replace(
|
|
30
|
+
return vue.createParsedCommandLine(ts, ts.sys, tsconfig.replace(/\\/g, '/')).vueOptions;
|
|
40
31
|
}
|
|
41
32
|
else {
|
|
42
33
|
return vue.createParsedCommandLineByJson(ts, ts.sys, info.languageServiceHost.getCurrentDirectory(), {})
|
|
@@ -76,53 +67,53 @@ module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)(
|
|
|
76
67
|
});
|
|
77
68
|
session.addProtocolHandler('_vue:collectExtractProps', request => {
|
|
78
69
|
const [fileName, templateCodeRange] = request.arguments;
|
|
79
|
-
const {
|
|
80
|
-
return createResponse((0, collectExtractProps_1.collectExtractProps)(ts, language,
|
|
70
|
+
const { project, language, sourceScript, virtualCode } = getProjectAndVirtualCode(fileName);
|
|
71
|
+
return createResponse((0, collectExtractProps_1.collectExtractProps)(ts, language, project.getLanguageService().getProgram(), sourceScript, virtualCode, templateCodeRange, sourceScript.generated ? sourceScript.snapshot.getLength() : 0));
|
|
81
72
|
});
|
|
82
73
|
session.addProtocolHandler('_vue:getImportPathForFile', request => {
|
|
83
74
|
const [fileName, incomingFileName, preferences] = request.arguments;
|
|
84
|
-
const {
|
|
85
|
-
return createResponse((0, getImportPathForFile_1.getImportPathForFile)(ts,
|
|
75
|
+
const { project } = getProject(fileName);
|
|
76
|
+
return createResponse((0, getImportPathForFile_1.getImportPathForFile)(ts, project, project.getLanguageService().getProgram(), fileName, incomingFileName, preferences));
|
|
86
77
|
});
|
|
87
78
|
session.addProtocolHandler('_vue:isRefAtPosition', request => {
|
|
88
79
|
const [fileName, position] = request.arguments;
|
|
89
|
-
const {
|
|
90
|
-
return createResponse((0, isRefAtPosition_1.isRefAtPosition)(ts, language,
|
|
80
|
+
const { project, language, sourceScript, virtualCode } = getProjectAndVirtualCode(fileName);
|
|
81
|
+
return createResponse((0, isRefAtPosition_1.isRefAtPosition)(ts, language, project.getLanguageService().getProgram(), sourceScript, virtualCode, position, sourceScript.generated ? sourceScript.snapshot.getLength() : 0));
|
|
91
82
|
});
|
|
92
83
|
session.addProtocolHandler('_vue:getComponentDirectives', request => {
|
|
93
84
|
const [fileName] = request.arguments;
|
|
94
|
-
const {
|
|
95
|
-
return createResponse((0, getComponentDirectives_1.getComponentDirectives)(ts,
|
|
85
|
+
const { project } = getProject(fileName);
|
|
86
|
+
return createResponse((0, getComponentDirectives_1.getComponentDirectives)(ts, project.getLanguageService().getProgram(), fileName));
|
|
96
87
|
});
|
|
97
88
|
session.addProtocolHandler('_vue:getComponentEvents', request => {
|
|
98
89
|
const [fileName, tag] = request.arguments;
|
|
99
|
-
const {
|
|
100
|
-
return createResponse((0, getComponentEvents_1.getComponentEvents)(ts,
|
|
90
|
+
const { project } = getProject(fileName);
|
|
91
|
+
return createResponse((0, getComponentEvents_1.getComponentEvents)(ts, project.getLanguageService().getProgram(), fileName, tag));
|
|
101
92
|
});
|
|
102
93
|
session.addProtocolHandler('_vue:getComponentNames', request => {
|
|
103
94
|
const [fileName] = request.arguments;
|
|
104
|
-
const {
|
|
105
|
-
return createResponse((0, getComponentNames_1.getComponentNames)(ts,
|
|
95
|
+
const { project } = getProject(fileName);
|
|
96
|
+
return createResponse((0, getComponentNames_1.getComponentNames)(ts, project.getLanguageService().getProgram(), fileName));
|
|
106
97
|
});
|
|
107
98
|
session.addProtocolHandler('_vue:getComponentProps', request => {
|
|
108
99
|
const [fileName, tag] = request.arguments;
|
|
109
|
-
const {
|
|
110
|
-
return createResponse((0, getComponentProps_1.getComponentProps)(ts,
|
|
100
|
+
const { project } = getProject(fileName);
|
|
101
|
+
return createResponse((0, getComponentProps_1.getComponentProps)(ts, project.getLanguageService().getProgram(), fileName, tag));
|
|
111
102
|
});
|
|
112
103
|
session.addProtocolHandler('_vue:getComponentSlots', request => {
|
|
113
104
|
const [fileName] = request.arguments;
|
|
114
|
-
const {
|
|
115
|
-
return createResponse((0, getComponentSlots_1.getComponentSlots)(ts,
|
|
105
|
+
const { project, virtualCode } = getProjectAndVirtualCode(fileName);
|
|
106
|
+
return createResponse((0, getComponentSlots_1.getComponentSlots)(ts, project.getLanguageService().getProgram(), virtualCode));
|
|
116
107
|
});
|
|
117
108
|
session.addProtocolHandler('_vue:getElementAttrs', request => {
|
|
118
109
|
const [fileName, tag] = request.arguments;
|
|
119
|
-
const {
|
|
120
|
-
return createResponse((0, getElementAttrs_1.getElementAttrs)(ts,
|
|
110
|
+
const { project } = getProject(fileName);
|
|
111
|
+
return createResponse((0, getElementAttrs_1.getElementAttrs)(ts, project.getLanguageService().getProgram(), fileName, tag));
|
|
121
112
|
});
|
|
122
113
|
session.addProtocolHandler('_vue:getElementNames', request => {
|
|
123
114
|
const [fileName] = request.arguments;
|
|
124
|
-
const {
|
|
125
|
-
return createResponse((0, getElementNames_1.getElementNames)(ts,
|
|
115
|
+
const { project } = getProject(fileName);
|
|
116
|
+
return createResponse((0, getElementNames_1.getElementNames)(ts, project.getLanguageService().getProgram(), fileName));
|
|
126
117
|
});
|
|
127
118
|
projectService.logger.info('Vue specific commands are successfully added.');
|
|
128
119
|
function createResponse(res) {
|
|
@@ -131,8 +122,8 @@ module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)(
|
|
|
131
122
|
responseRequired: true,
|
|
132
123
|
};
|
|
133
124
|
}
|
|
134
|
-
function
|
|
135
|
-
const service =
|
|
125
|
+
function getProjectAndVirtualCode(fileName) {
|
|
126
|
+
const service = getProject(fileName);
|
|
136
127
|
const sourceScript = service.language.scripts.get(fileName);
|
|
137
128
|
if (!sourceScript) {
|
|
138
129
|
throw new Error('No source script found for file: ' + fileName);
|
|
@@ -147,22 +138,17 @@ module.exports = (0, createLanguageServicePlugin_1.createLanguageServicePlugin)(
|
|
|
147
138
|
virtualCode,
|
|
148
139
|
};
|
|
149
140
|
}
|
|
150
|
-
function
|
|
151
|
-
|
|
152
|
-
const { project } = session.getFileAndProject({
|
|
141
|
+
function getProject(fileName) {
|
|
142
|
+
const { project } = session['getFileAndProject']({
|
|
153
143
|
file: fileName,
|
|
154
144
|
projectFileName: undefined,
|
|
155
145
|
});
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
throw new Error('No vue service for project: ' + project.getProjectName());
|
|
146
|
+
if (!('__vue__' in project)) {
|
|
147
|
+
throw new Error('No vue project info for project: ' + project.getProjectName());
|
|
159
148
|
}
|
|
160
|
-
const [language, languageServiceHost, languageService] = service;
|
|
161
149
|
return {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
languageServiceHost,
|
|
165
|
-
language,
|
|
150
|
+
project,
|
|
151
|
+
language: project.__vue__.language,
|
|
166
152
|
};
|
|
167
153
|
}
|
|
168
154
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/typescript-plugin",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"**/*.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@volar/typescript": "2.4.23",
|
|
17
|
-
"@vue/language-core": "3.0.
|
|
17
|
+
"@vue/language-core": "3.0.10",
|
|
18
18
|
"@vue/shared": "^3.5.0",
|
|
19
19
|
"path-browserify": "^1.0.1"
|
|
20
20
|
},
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"@types/node": "^22.10.4",
|
|
23
23
|
"@types/path-browserify": "^1.0.1"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "0f57e1df7261ba537de6078811e971e8da1a3c79"
|
|
26
26
|
}
|