volar-service-typescript 0.0.48 → 0.0.49
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 +49 -52
- package/lib/utils/typeConverters.d.ts +1 -1
- package/package.json +3 -3
package/lib/plugins/semantic.js
CHANGED
|
@@ -115,9 +115,56 @@ 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
|
+
return context.encodeEmbeddedDocumentUri(extraServiceScript[0].id, extraServiceScript[1].code.id);
|
|
136
|
+
}
|
|
137
|
+
const uri = asScriptId(fileName);
|
|
138
|
+
const sourceScript = context.language.scripts.get(uri);
|
|
139
|
+
const serviceScript = sourceScript?.generated?.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
140
|
+
if (sourceScript && serviceScript) {
|
|
141
|
+
return context.encodeEmbeddedDocumentUri(sourceScript.id, serviceScript.code.id);
|
|
142
|
+
}
|
|
143
|
+
return uri;
|
|
144
|
+
},
|
|
145
|
+
getTextDocument(uri) {
|
|
146
|
+
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
147
|
+
if (decoded) {
|
|
148
|
+
const sourceScript = context.language.scripts.get(decoded[0]);
|
|
149
|
+
const virtualCode = sourceScript?.generated?.embeddedCodes.get(decoded[1]);
|
|
150
|
+
if (virtualCode) {
|
|
151
|
+
return context.documents.get(uri, virtualCode.languageId, virtualCode.snapshot);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
const sourceFile = context.language.scripts.get(uri);
|
|
156
|
+
if (sourceFile) {
|
|
157
|
+
return context.documents.get(uri, sourceFile.languageId, sourceFile.snapshot);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
const getCodeActions = codeActions.register(ctx);
|
|
163
|
+
const doCodeActionResolve = codeActionResolve.register(ctx);
|
|
164
|
+
const getDocumentSemanticTokens = semanticTokens.register(ts, ctx);
|
|
165
|
+
/* typescript-language-features is hardcode true */
|
|
166
|
+
const renameInfoOptions = { allowRenameOfImportPath: true };
|
|
167
|
+
let formattingOptions;
|
|
121
168
|
if (created.setPreferences && context.env.getConfiguration) {
|
|
122
169
|
updatePreferences();
|
|
123
170
|
context.env.onDidChangeConfiguration?.(updatePreferences);
|
|
@@ -149,7 +196,7 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
149
196
|
function updateSourceScriptFileNames() {
|
|
150
197
|
sourceScriptNames.clear();
|
|
151
198
|
for (const fileName of languageServiceHost.getScriptFileNames()) {
|
|
152
|
-
const uri =
|
|
199
|
+
const uri = ctx.fileNameToUri(fileName);
|
|
153
200
|
const sourceScript = context.language.scripts.get(uri);
|
|
154
201
|
if (sourceScript?.generated) {
|
|
155
202
|
const tsCode = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
@@ -163,56 +210,6 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
163
210
|
}
|
|
164
211
|
}
|
|
165
212
|
}
|
|
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
213
|
return {
|
|
217
214
|
provide: {
|
|
218
215
|
'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.49",
|
|
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.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependenciesMeta": {
|
|
42
42
|
"@volar/language-service": {
|
|
43
43
|
"optional": true
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "81275d75ab2adc03a643785a551ad31debd72866"
|
|
47
47
|
}
|