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.
@@ -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 = asScriptId(fileName);
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 | 10 | 22 | 11 | 6 | 7 | 13 | 12 | 9 | 26 | 15;
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.48",
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.0"
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": "6a80c92133e154907a79eefa05603f63994214c3"
46
+ "gitHead": "70ff61c4cd2fd307703c10d3a80e1513aff7fbae"
47
47
  }