@volar/typescript 2.4.12 → 2.4.14

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.
@@ -170,8 +170,6 @@ function proxyCreateProgram(ts, original, create) {
170
170
  }
171
171
  const program = Reflect.apply(target, thisArg, args);
172
172
  (0, decorateProgram_1.decorateProgram)(language, program);
173
- // TODO: #128
174
- program.__volar__ = { language };
175
173
  return program;
176
174
  },
177
175
  });
@@ -140,10 +140,9 @@ function getFormattingEditsForRange(language, getFormattingEditsForRange) {
140
140
  return [];
141
141
  }
142
142
  if (serviceScript) {
143
- const generateStart = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, start, language_core_1.isFormattingEnabled);
144
- const generateEnd = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, end, language_core_1.isFormattingEnabled);
145
- if (generateStart !== undefined && generateEnd !== undefined) {
146
- const edits = getFormattingEditsForRange(targetScript.id, generateStart, generateEnd, options);
143
+ const generatedRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isFormattingEnabled);
144
+ if (generatedRange !== undefined) {
145
+ const edits = getFormattingEditsForRange(targetScript.id, generatedRange[0], generatedRange[1], options);
147
146
  return edits
148
147
  .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])
149
148
  .filter(edit => !!edit);
@@ -535,10 +534,9 @@ function getCodeFixesAtPosition(language, getCodeFixesAtPosition) {
535
534
  return [];
536
535
  }
537
536
  if (serviceScript) {
538
- const generateStart = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, start, language_core_1.isCodeActionsEnabled);
539
- const generateEnd = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, end, language_core_1.isCodeActionsEnabled);
540
- if (generateStart !== undefined && generateEnd !== undefined) {
541
- fixes = getCodeFixesAtPosition(targetScript.id, generateStart, generateEnd, errorCodes, formatOptions, preferences);
537
+ const generateRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isCodeActionsEnabled);
538
+ if (generateRange !== undefined) {
539
+ fixes = getCodeFixesAtPosition(targetScript.id, generateRange[0], generateRange[1], errorCodes, formatOptions, preferences);
542
540
  }
543
541
  }
544
542
  else {
@@ -562,23 +560,17 @@ function getEncodedSemanticClassifications(language, getEncodedSemanticClassific
562
560
  };
563
561
  }
564
562
  if (serviceScript) {
565
- let start;
566
- let end;
567
563
  const map = language.maps.get(serviceScript.code, targetScript);
568
- for (const mapping of map.mappings) {
569
- // TODO reuse the logic from language service
570
- if ((0, language_core_1.isSemanticTokensEnabled)(mapping.data) && mapping.sourceOffsets[0] >= span.start && mapping.sourceOffsets[0] <= span.start + span.length) {
571
- start ??= mapping.generatedOffsets[0];
572
- end ??= mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + (mapping.generatedLengths ?? mapping.lengths)[mapping.lengths.length - 1];
573
- start = Math.min(start, mapping.generatedOffsets[0]);
574
- end = Math.max(end, mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + (mapping.generatedLengths ?? mapping.lengths)[mapping.lengths.length - 1]);
575
- }
564
+ const mapped = (0, language_core_1.findOverlapCodeRange)(span.start, span.start + span.length, map, language_core_1.isSemanticTokensEnabled);
565
+ if (!mapped) {
566
+ return {
567
+ spans: [],
568
+ endOfLineState: 0
569
+ };
576
570
  }
577
- start ??= 0;
578
- end ??= targetScript.snapshot.getLength();
579
571
  const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);
580
- start += mappingOffset;
581
- end += mappingOffset;
572
+ const start = mapped.start + mappingOffset;
573
+ const end = mapped.end + mappingOffset;
582
574
  const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format);
583
575
  const spans = [];
584
576
  for (let i = 0; i < result.spans.length; i += 3) {
@@ -22,6 +22,7 @@ export declare function transformTextSpan(sourceScript: SourceScript<string> | u
22
22
  export declare function toSourceOffset(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): [fileName: string, offset: number] | undefined;
23
23
  export declare function toSourceRanges(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, start: number, end: number, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, start: number, end: number]>;
24
24
  export declare function toSourceOffsets(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, offset: number]>;
25
+ export declare function toGeneratedRange(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, start: number, end: number, filter: (data: CodeInformation) => boolean): readonly [number, number] | undefined;
25
26
  export declare function toGeneratedRanges(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, start: number, end: number, filter: (data: CodeInformation) => boolean): Generator<readonly [number, number], void, unknown>;
26
27
  export declare function toGeneratedOffset(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, position: number, filter: (data: CodeInformation) => boolean): number | undefined;
27
28
  export declare function toGeneratedOffsets(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, position: number, filter: (data: CodeInformation) => boolean): Generator<readonly [number, import("@volar/language-core").Mapping<CodeInformation>], void, unknown>;
@@ -11,6 +11,7 @@ exports.transformTextSpan = transformTextSpan;
11
11
  exports.toSourceOffset = toSourceOffset;
12
12
  exports.toSourceRanges = toSourceRanges;
13
13
  exports.toSourceOffsets = toSourceOffsets;
14
+ exports.toGeneratedRange = toGeneratedRange;
14
15
  exports.toGeneratedRanges = toGeneratedRanges;
15
16
  exports.toGeneratedOffset = toGeneratedOffset;
16
17
  exports.toGeneratedOffsets = toGeneratedOffsets;
@@ -230,6 +231,11 @@ function* toSourceOffsets(sourceScript, language, serviceScript, position, filte
230
231
  }
231
232
  }
232
233
  }
234
+ function toGeneratedRange(language, serviceScript, sourceScript, start, end, filter) {
235
+ for (const result of toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter)) {
236
+ return result;
237
+ }
238
+ }
233
239
  function* toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter) {
234
240
  const map = language.maps.get(serviceScript.code, sourceScript);
235
241
  for (const [generateStart, generateEnd] of map.toGeneratedRange(start, end, true, filter)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/typescript",
3
- "version": "2.4.12",
3
+ "version": "2.4.14",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -12,14 +12,14 @@
12
12
  "directory": "packages/typescript"
13
13
  },
14
14
  "dependencies": {
15
- "@volar/language-core": "2.4.12",
15
+ "@volar/language-core": "2.4.14",
16
16
  "path-browserify": "^1.0.1",
17
17
  "vscode-uri": "^3.0.8"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/node": "latest",
21
21
  "@types/path-browserify": "latest",
22
- "@volar/language-service": "2.4.12"
22
+ "@volar/language-service": "2.4.14"
23
23
  },
24
- "gitHead": "17b9b8a1f522afd1aad1e598d2fd935680d8a8d7"
24
+ "gitHead": "e8280897a7bc0e0366f657b6aefd4230ad5ee027"
25
25
  }