volar-service-typescript 0.0.48 → 0.0.50
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/plugins/semantic.js +50 -52
- package/lib/utils/typeConverters.d.ts +1 -1
- package/package.json +3 -3
package/lib/plugins/semantic.js
CHANGED
|
@@ -115,9 +115,57 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
115
115
|
if (!context.language.typescript) {
|
|
116
116
|
return {};
|
|
117
117
|
}
|
|
118
|
-
const { sys, languageServiceHost, asFileName, asScriptId } = context.language.typescript;
|
|
118
|
+
const { sys, languageServiceHost, asFileName, asScriptId, getExtraServiceScript } = context.language.typescript;
|
|
119
119
|
const created = tsWithImportCache.createLanguageService(ts, sys, languageServiceHost, proxiedHost => ts.createLanguageService(proxiedHost, getDocumentRegistry(ts, sys.useCaseSensitiveFileNames, languageServiceHost.getCurrentDirectory())));
|
|
120
120
|
const { languageService } = created;
|
|
121
|
+
const ctx = {
|
|
122
|
+
...context,
|
|
123
|
+
languageServiceHost,
|
|
124
|
+
languageService,
|
|
125
|
+
uriToFileName(uri) {
|
|
126
|
+
const virtualScript = getVirtualScriptByUri(uri);
|
|
127
|
+
if (virtualScript) {
|
|
128
|
+
return virtualScript.fileName;
|
|
129
|
+
}
|
|
130
|
+
return asFileName(uri);
|
|
131
|
+
},
|
|
132
|
+
fileNameToUri(fileName) {
|
|
133
|
+
const extraServiceScript = getExtraServiceScript(fileName);
|
|
134
|
+
if (extraServiceScript) {
|
|
135
|
+
const sourceScript = context.language.scripts.fromVirtualCode(extraServiceScript.code);
|
|
136
|
+
return context.encodeEmbeddedDocumentUri(sourceScript.id, extraServiceScript.code.id);
|
|
137
|
+
}
|
|
138
|
+
const uri = asScriptId(fileName);
|
|
139
|
+
const sourceScript = context.language.scripts.get(uri);
|
|
140
|
+
const serviceScript = sourceScript?.generated?.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
141
|
+
if (sourceScript && serviceScript) {
|
|
142
|
+
return context.encodeEmbeddedDocumentUri(sourceScript.id, serviceScript.code.id);
|
|
143
|
+
}
|
|
144
|
+
return uri;
|
|
145
|
+
},
|
|
146
|
+
getTextDocument(uri) {
|
|
147
|
+
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
148
|
+
if (decoded) {
|
|
149
|
+
const sourceScript = context.language.scripts.get(decoded[0]);
|
|
150
|
+
const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]);
|
|
151
|
+
if (virtualCode) {
|
|
152
|
+
return context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const sourceFile = context.language.scripts.get(uri);
|
|
157
|
+
if (sourceFile) {
|
|
158
|
+
return context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
const getCodeActions = codeActions.register(ctx);
|
|
164
|
+
const doCodeActionResolve = codeActionResolve.register(ctx);
|
|
165
|
+
const getDocumentSemanticTokens = semanticTokens.register(ts, ctx);
|
|
166
|
+
/* typescript-language-features is hardcode true */
|
|
167
|
+
const renameInfoOptions = { allowRenameOfImportPath: true };
|
|
168
|
+
let formattingOptions;
|
|
121
169
|
if (created.setPreferences && context.env.getConfiguration) {
|
|
122
170
|
updatePreferences();
|
|
123
171
|
context.env.onDidChangeConfiguration?.(updatePreferences);
|
|
@@ -149,7 +197,7 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
149
197
|
function updateSourceScriptFileNames() {
|
|
150
198
|
sourceScriptNames.clear();
|
|
151
199
|
for (const fileName of languageServiceHost.getScriptFileNames()) {
|
|
152
|
-
const uri =
|
|
200
|
+
const uri = ctx.fileNameToUri(fileName);
|
|
153
201
|
const sourceScript = context.language.scripts.get(uri);
|
|
154
202
|
if (sourceScript?.generated) {
|
|
155
203
|
const tsCode = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
@@ -163,56 +211,6 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
163
211
|
}
|
|
164
212
|
}
|
|
165
213
|
}
|
|
166
|
-
const ctx = {
|
|
167
|
-
...context,
|
|
168
|
-
languageServiceHost,
|
|
169
|
-
languageService,
|
|
170
|
-
uriToFileName(uri) {
|
|
171
|
-
const virtualScript = getVirtualScriptByUri(uri);
|
|
172
|
-
if (virtualScript) {
|
|
173
|
-
return virtualScript.fileName;
|
|
174
|
-
}
|
|
175
|
-
return asFileName(uri);
|
|
176
|
-
},
|
|
177
|
-
fileNameToUri(fileName) {
|
|
178
|
-
const uri = asScriptId(fileName);
|
|
179
|
-
const sourceScript = context.language.scripts.get(uri);
|
|
180
|
-
const extraServiceScript = context.language.typescript.getExtraServiceScript(fileName);
|
|
181
|
-
let virtualCode = extraServiceScript?.code;
|
|
182
|
-
if (!virtualCode && sourceScript?.generated?.languagePlugin.typescript) {
|
|
183
|
-
const serviceScript = sourceScript.generated.languagePlugin.typescript.getServiceScript(sourceScript.generated.root);
|
|
184
|
-
if (serviceScript) {
|
|
185
|
-
virtualCode = serviceScript.code;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (sourceScript && virtualCode) {
|
|
189
|
-
return context.encodeEmbeddedDocumentUri(sourceScript.id, virtualCode.id);
|
|
190
|
-
}
|
|
191
|
-
return uri;
|
|
192
|
-
},
|
|
193
|
-
getTextDocument(uri) {
|
|
194
|
-
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
195
|
-
if (decoded) {
|
|
196
|
-
const sourceScript = context.language.scripts.get(decoded[0]);
|
|
197
|
-
const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]);
|
|
198
|
-
if (virtualCode) {
|
|
199
|
-
return context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
const sourceFile = context.language.scripts.get(uri);
|
|
204
|
-
if (sourceFile) {
|
|
205
|
-
return context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
};
|
|
210
|
-
const getCodeActions = codeActions.register(ctx);
|
|
211
|
-
const doCodeActionResolve = codeActionResolve.register(ctx);
|
|
212
|
-
const getDocumentSemanticTokens = semanticTokens.register(ts, ctx);
|
|
213
|
-
/* typescript-language-features is hardcode true */
|
|
214
|
-
const renameInfoOptions = { allowRenameOfImportPath: true };
|
|
215
|
-
let formattingOptions;
|
|
216
214
|
return {
|
|
217
215
|
provide: {
|
|
218
216
|
'typescript/languageService': () => languageService,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as ts from 'typescript';
|
|
2
2
|
export declare namespace SymbolKind {
|
|
3
|
-
function fromProtocolScriptElementKind(kind: ts.ScriptElementKind): 2 | 5 |
|
|
3
|
+
function fromProtocolScriptElementKind(kind: ts.ScriptElementKind): 2 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 15 | 22 | 26;
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=typeConverters.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volar-service-typescript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.50",
|
|
4
4
|
"description": "Integrate TypeScript into Volar",
|
|
5
5
|
"homepage": "https://github.com/volarjs/services/tree/master/packages/typescript",
|
|
6
6
|
"bugs": "https://github.com/volarjs/services/issues",
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"vscode-uri": "^3.0.8"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@volar/language-service": "~2.3.0-alpha.
|
|
39
|
+
"@volar/language-service": "~2.3.0-alpha.5"
|
|
40
40
|
},
|
|
41
41
|
"peerDependenciesMeta": {
|
|
42
42
|
"@volar/language-service": {
|
|
43
43
|
"optional": true
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "70ff61c4cd2fd307703c10d3a80e1513aff7fbae"
|
|
47
47
|
}
|