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.
@@ -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 = asScriptId(fileName);
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 | 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.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.0"
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": "6a80c92133e154907a79eefa05603f63994214c3"
46
+ "gitHead": "81275d75ab2adc03a643785a551ad31debd72866"
47
47
  }