@volar/typescript 2.4.7 → 2.4.8

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.
@@ -112,7 +112,7 @@ function getFormattingEditsForDocument(language, getFormattingEditsForDocument)
112
112
  }
113
113
  const edits = getFormattingEditsForDocument(targetScript.id, options);
114
114
  return edits
115
- .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
115
+ .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])
116
116
  .filter(edit => !!edit);
117
117
  }
118
118
  else {
@@ -133,7 +133,7 @@ function getFormattingEditsForRange(language, getFormattingEditsForRange) {
133
133
  if (generateStart !== undefined && generateEnd !== undefined) {
134
134
  const edits = getFormattingEditsForRange(targetScript.id, generateStart, generateEnd, options);
135
135
  return edits
136
- .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
136
+ .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])
137
137
  .filter(edit => !!edit);
138
138
  }
139
139
  return [];
@@ -155,7 +155,7 @@ function getFormattingEditsAfterKeystroke(language, getFormattingEditsAfterKeyst
155
155
  if (generatePosition !== undefined) {
156
156
  const edits = getFormattingEditsAfterKeystroke(targetScript.id, generatePosition, key, options);
157
157
  return edits
158
- .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
158
+ .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])
159
159
  .filter(edit => !!edit);
160
160
  }
161
161
  return [];
@@ -168,7 +168,7 @@ function getFormattingEditsAfterKeystroke(language, getFormattingEditsAfterKeyst
168
168
  function getEditsForFileRename(language, getEditsForFileRename) {
169
169
  return (oldFilePath, newFilePath, formatOptions, preferences) => {
170
170
  const edits = getEditsForFileRename(oldFilePath, newFilePath, formatOptions, preferences);
171
- return (0, transform_1.transformFileTextChanges)(language, edits, language_core_1.isRenameEnabled);
171
+ return (0, transform_1.transformFileTextChanges)(language, edits, false, language_core_1.isRenameEnabled);
172
172
  };
173
173
  }
174
174
  function getLinkedEditingRangeAtPosition(language, getLinkedEditingRangeAtPosition) {
@@ -185,7 +185,7 @@ function getLinkedEditingRangeAtPosition(language, getLinkedEditingRangeAtPositi
185
185
  if (info) {
186
186
  return {
187
187
  ranges: info.ranges
188
- .map(span => (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1.isLinkedEditingEnabled)?.[1])
188
+ .map(span => (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, false, language_core_1.isLinkedEditingEnabled)?.[1])
189
189
  .filter(span => !!span),
190
190
  wordPattern: info.wordPattern,
191
191
  };
@@ -209,10 +209,10 @@ function prepareCallHierarchy(language, prepareCallHierarchy) {
209
209
  if (generatePosition !== undefined) {
210
210
  const item = prepareCallHierarchy(targetScript.id, generatePosition);
211
211
  if (Array.isArray(item)) {
212
- return item.map(item => (0, transform_1.transformCallHierarchyItem)(language, item, language_core_1.isCallHierarchyEnabled));
212
+ return item.map(item => (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled));
213
213
  }
214
214
  else if (item) {
215
- return (0, transform_1.transformCallHierarchyItem)(language, item, language_core_1.isCallHierarchyEnabled);
215
+ return (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled);
216
216
  }
217
217
  }
218
218
  }
@@ -240,9 +240,9 @@ function provideCallHierarchyIncomingCalls(language, provideCallHierarchyIncomin
240
240
  }
241
241
  return calls
242
242
  .map(call => {
243
- const from = (0, transform_1.transformCallHierarchyItem)(language, call.from, language_core_1.isCallHierarchyEnabled);
243
+ const from = (0, transform_1.transformCallHierarchyItem)(language, call.from, true, language_core_1.isCallHierarchyEnabled);
244
244
  const fromSpans = call.fromSpans
245
- .map(span => (0, transform_1.transformSpan)(language, call.from.file, span, language_core_1.isCallHierarchyEnabled)?.textSpan)
245
+ .map(span => (0, transform_1.transformSpan)(language, call.from.file, span, true, language_core_1.isCallHierarchyEnabled)?.textSpan)
246
246
  .filter(span => !!span);
247
247
  return {
248
248
  from,
@@ -270,10 +270,10 @@ function provideCallHierarchyOutgoingCalls(language, provideCallHierarchyOutgoin
270
270
  }
271
271
  return calls
272
272
  .map(call => {
273
- const to = (0, transform_1.transformCallHierarchyItem)(language, call.to, language_core_1.isCallHierarchyEnabled);
273
+ const to = (0, transform_1.transformCallHierarchyItem)(language, call.to, true, language_core_1.isCallHierarchyEnabled);
274
274
  const fromSpans = call.fromSpans
275
275
  .map(span => serviceScript
276
- ? (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1.isCallHierarchyEnabled)?.[1]
276
+ ? (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, true, language_core_1.isCallHierarchyEnabled)?.[1]
277
277
  : span)
278
278
  .filter(span => !!span);
279
279
  return {
@@ -286,7 +286,7 @@ function provideCallHierarchyOutgoingCalls(language, provideCallHierarchyOutgoin
286
286
  function organizeImports(language, organizeImports) {
287
287
  return (args, formatOptions, preferences) => {
288
288
  const unresolved = organizeImports(args, formatOptions, preferences);
289
- return (0, transform_1.transformFileTextChanges)(language, unresolved, language_core_1.isCodeActionsEnabled);
289
+ return (0, transform_1.transformFileTextChanges)(language, unresolved, false, language_core_1.isCodeActionsEnabled);
290
290
  };
291
291
  }
292
292
  function getQuickInfoAtPosition(language, getQuickInfoAtPosition) {
@@ -301,7 +301,7 @@ function getQuickInfoAtPosition(language, getQuickInfoAtPosition) {
301
301
  for (const [generatePosition] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isHoverEnabled)) {
302
302
  const info = getQuickInfoAtPosition(targetScript.id, generatePosition);
303
303
  if (info) {
304
- const textSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.textSpan, language_core_1.isHoverEnabled)?.[1];
304
+ const textSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.textSpan, true, language_core_1.isHoverEnabled)?.[1];
305
305
  if (textSpan) {
306
306
  infos.push({
307
307
  ...info,
@@ -366,7 +366,7 @@ function getSignatureHelpItems(language, getSignatureHelpItems) {
366
366
  if (generatePosition !== undefined) {
367
367
  const result = getSignatureHelpItems(targetScript.id, generatePosition, options);
368
368
  if (result) {
369
- const applicableSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.applicableSpan, language_core_1.isSignatureHelpEnabled)?.[1];
369
+ const applicableSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.applicableSpan, true, language_core_1.isSignatureHelpEnabled)?.[1];
370
370
  if (applicableSpan) {
371
371
  return {
372
372
  ...result,
@@ -398,11 +398,11 @@ function getDocumentHighlights(language, getDocumentHighlights) {
398
398
  ...highlights,
399
399
  highlightSpans: highlights.highlightSpans
400
400
  .map(span => {
401
- const { textSpan } = (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.textSpan, language_core_1.isHighlightEnabled) ?? {};
401
+ const { textSpan } = (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.textSpan, false, language_core_1.isHighlightEnabled) ?? {};
402
402
  if (textSpan) {
403
403
  return {
404
404
  ...span,
405
- contextSpan: (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.contextSpan, language_core_1.isHighlightEnabled)?.textSpan,
405
+ contextSpan: (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.contextSpan, false, language_core_1.isHighlightEnabled)?.textSpan,
406
406
  textSpan,
407
407
  };
408
408
  }
@@ -464,7 +464,7 @@ function getEditsForRefactor(language, getEditsForRefactor) {
464
464
  edits = getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences);
465
465
  }
466
466
  if (edits) {
467
- edits.edits = (0, transform_1.transformFileTextChanges)(language, edits.edits, language_core_1.isCodeActionsEnabled);
467
+ edits.edits = (0, transform_1.transformFileTextChanges)(language, edits.edits, false, language_core_1.isCodeActionsEnabled);
468
468
  return edits;
469
469
  }
470
470
  };
@@ -472,7 +472,7 @@ function getEditsForRefactor(language, getEditsForRefactor) {
472
472
  function getCombinedCodeFix(language, getCombinedCodeFix) {
473
473
  return (...args) => {
474
474
  const codeActions = getCombinedCodeFix(...args);
475
- codeActions.changes = (0, transform_1.transformFileTextChanges)(language, codeActions.changes, language_core_1.isCodeActionsEnabled);
475
+ codeActions.changes = (0, transform_1.transformFileTextChanges)(language, codeActions.changes, false, language_core_1.isCodeActionsEnabled);
476
476
  return codeActions;
477
477
  };
478
478
  }
@@ -491,7 +491,7 @@ function getRenameInfo(language, getRenameInfo) {
491
491
  for (const [generateOffset] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isRenameEnabled)) {
492
492
  const info = getRenameInfo(targetScript.id, generateOffset, options);
493
493
  if (info.canRename) {
494
- const span = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.triggerSpan, language_core_1.isRenameEnabled)?.[1];
494
+ const span = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.triggerSpan, false, language_core_1.isRenameEnabled)?.[1];
495
495
  if (span) {
496
496
  info.triggerSpan = span;
497
497
  return info;
@@ -533,7 +533,7 @@ function getCodeFixesAtPosition(language, getCodeFixesAtPosition) {
533
533
  fixes = getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences);
534
534
  }
535
535
  fixes = fixes.map(fix => {
536
- fix.changes = (0, transform_1.transformFileTextChanges)(language, fix.changes, language_core_1.isCodeActionsEnabled);
536
+ fix.changes = (0, transform_1.transformFileTextChanges)(language, fix.changes, false, language_core_1.isCodeActionsEnabled);
537
537
  return fix;
538
538
  });
539
539
  return fixes;
@@ -570,7 +570,7 @@ function getEncodedSemanticClassifications(language, getEncodedSemanticClassific
570
570
  const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format);
571
571
  const spans = [];
572
572
  for (let i = 0; i < result.spans.length; i += 3) {
573
- for (const [_, sourceStart, sourceEnd] of (0, transform_1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], language_core_1.isSemanticTokensEnabled)) {
573
+ for (const [_, sourceStart, sourceEnd] of (0, transform_1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], false, language_core_1.isSemanticTokensEnabled)) {
574
574
  spans.push(sourceStart, sourceEnd - sourceStart, result.spans[i + 2]);
575
575
  break;
576
576
  }
@@ -631,14 +631,14 @@ function getDefinitionAndBoundSpan(language, getDefinitionAndBoundSpan) {
631
631
  }
632
632
  });
633
633
  const textSpan = unresolved
634
- .map(s => (0, transform_1.transformSpan)(language, fileName, s.textSpan, language_core_1.isDefinitionEnabled)?.textSpan)
634
+ .map(s => (0, transform_1.transformSpan)(language, fileName, s.textSpan, true, language_core_1.isDefinitionEnabled)?.textSpan)
635
635
  .filter(s => !!s)[0];
636
636
  if (!textSpan) {
637
637
  return;
638
638
  }
639
639
  const definitions = unresolved
640
640
  .map(s => s.definitions
641
- ?.map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
641
+ ?.map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
642
642
  .filter(s => !!s)
643
643
  ?? [])
644
644
  .flat();
@@ -661,11 +661,11 @@ function findReferences(language, findReferences) {
661
661
  const resolved = unresolved
662
662
  .flat()
663
663
  .map(symbol => {
664
- const definition = (0, transform_1.transformDocumentSpan)(language, symbol.definition, language_core_1.isDefinitionEnabled, true);
664
+ const definition = (0, transform_1.transformDocumentSpan)(language, symbol.definition, true, language_core_1.isDefinitionEnabled, true);
665
665
  return {
666
666
  definition,
667
667
  references: symbol.references
668
- .map(r => (0, transform_1.transformDocumentSpan)(language, r, language_core_1.isReferencesEnabled))
668
+ .map(r => (0, transform_1.transformDocumentSpan)(language, r, true, language_core_1.isReferencesEnabled))
669
669
  .filter(r => !!r),
670
670
  };
671
671
  });
@@ -682,7 +682,7 @@ function getDefinitionAtPosition(language, getDefinitionAtPosition) {
682
682
  });
683
683
  const resolved = unresolved
684
684
  .flat()
685
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
685
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
686
686
  .filter(s => !!s);
687
687
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
688
688
  };
@@ -697,7 +697,7 @@ function getTypeDefinitionAtPosition(language, getTypeDefinitionAtPosition) {
697
697
  });
698
698
  const resolved = unresolved
699
699
  .flat()
700
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isTypeDefinitionEnabled))
700
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isTypeDefinitionEnabled))
701
701
  .filter(s => !!s);
702
702
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
703
703
  };
@@ -712,7 +712,7 @@ function getImplementationAtPosition(language, getImplementationAtPosition) {
712
712
  });
713
713
  const resolved = unresolved
714
714
  .flat()
715
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isImplementationEnabled))
715
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isImplementationEnabled))
716
716
  .filter(s => !!s);
717
717
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
718
718
  };
@@ -727,7 +727,7 @@ function findRenameLocations(language, findRenameLocations) {
727
727
  });
728
728
  const resolved = unresolved
729
729
  .flat()
730
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isRenameEnabled))
730
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, false, language_core_1.isRenameEnabled))
731
731
  .filter(s => !!s);
732
732
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
733
733
  };
@@ -742,7 +742,7 @@ function getReferencesAtPosition(language, getReferencesAtPosition) {
742
742
  });
743
743
  const resolved = unresolved
744
744
  .flat()
745
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
745
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))
746
746
  .filter(s => !!s);
747
747
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
748
748
  };
@@ -770,10 +770,10 @@ function getCompletionsAtPosition(language, getCompletionsAtPosition) {
770
770
  result.entries = result.entries.filter(entry => !!entry.sourceDisplay);
771
771
  }
772
772
  for (const entry of result.entries) {
773
- entry.replacementSpan = entry.replacementSpan && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, entry.replacementSpan, language_core_1.isCompletionEnabled)?.[1];
773
+ entry.replacementSpan = entry.replacementSpan && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, entry.replacementSpan, false, language_core_1.isCompletionEnabled)?.[1];
774
774
  }
775
775
  result.optionalReplacementSpan = result.optionalReplacementSpan
776
- && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.optionalReplacementSpan, language_core_1.isCompletionEnabled)?.[1];
776
+ && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.optionalReplacementSpan, false, language_core_1.isCompletionEnabled)?.[1];
777
777
  if (isAdditional) {
778
778
  additionalResults.push(result);
779
779
  }
@@ -818,7 +818,7 @@ function getCompletionEntryDetails(language, getCompletionEntryDetails) {
818
818
  }
819
819
  if (details?.codeActions) {
820
820
  for (const codeAction of details.codeActions) {
821
- codeAction.changes = (0, transform_1.transformFileTextChanges)(language, codeAction.changes, language_core_1.isCompletionEnabled);
821
+ codeAction.changes = (0, transform_1.transformFileTextChanges)(language, codeAction.changes, false, language_core_1.isCompletionEnabled);
822
822
  }
823
823
  }
824
824
  return details;
@@ -889,7 +889,7 @@ function getFileReferences(language, getFileReferences) {
889
889
  const fileName = filePath.replace(windowsPathReg, '/');
890
890
  const unresolved = getFileReferences(fileName);
891
891
  const resolved = unresolved
892
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
892
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))
893
893
  .filter(s => !!s);
894
894
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
895
895
  };
@@ -898,7 +898,7 @@ function getNavigateToItems(language, getNavigateToItems) {
898
898
  return (...args) => {
899
899
  const unresolved = getNavigateToItems(...args);
900
900
  const resolved = unresolved
901
- .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
901
+ .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))
902
902
  .filter(s => !!s);
903
903
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
904
904
  };
@@ -2,19 +2,19 @@ import type { CodeInformation, SourceScript } from '@volar/language-core';
2
2
  import { Language } from '@volar/language-core';
3
3
  import type * as ts from 'typescript';
4
4
  import type { TypeScriptServiceScript } from '../..';
5
- export declare function transformCallHierarchyItem(language: Language<string>, item: ts.CallHierarchyItem, filter: (data: CodeInformation) => boolean): ts.CallHierarchyItem;
5
+ export declare function transformCallHierarchyItem(language: Language<string>, item: ts.CallHierarchyItem, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): ts.CallHierarchyItem;
6
6
  export declare function transformDiagnostic<T extends ts.Diagnostic>(language: Language<string>, diagnostic: T, program: ts.Program | undefined, isTsc: boolean): T | undefined;
7
7
  export declare function fillSourceFileText(language: Language<string>, sourceFile: ts.SourceFile): void;
8
- export declare function transformFileTextChanges(language: Language<string>, changes: readonly ts.FileTextChanges[], filter: (data: CodeInformation) => boolean): ts.FileTextChanges[];
9
- export declare function transformDocumentSpan<T extends ts.DocumentSpan>(language: Language<string>, documentSpan: T, filter: (data: CodeInformation) => boolean, shouldFallback?: boolean): T | undefined;
10
- export declare function transformSpan(language: Language<string>, fileName: string | undefined, textSpan: ts.TextSpan | undefined, filter: (data: CodeInformation) => boolean): {
8
+ export declare function transformFileTextChanges(language: Language<string>, changes: readonly ts.FileTextChanges[], fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): ts.FileTextChanges[];
9
+ export declare function transformDocumentSpan<T extends ts.DocumentSpan>(language: Language<string>, documentSpan: T, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean, shouldFallback?: boolean): T | undefined;
10
+ export declare function transformSpan(language: Language<string>, fileName: string | undefined, textSpan: ts.TextSpan | undefined, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): {
11
11
  fileName: string;
12
12
  textSpan: ts.TextSpan;
13
13
  } | undefined;
14
- export declare function transformTextChange(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textChange: ts.TextChange, filter: (data: CodeInformation) => boolean): [string, ts.TextChange] | undefined;
15
- export declare function transformTextSpan(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textSpan: ts.TextSpan, filter: (data: CodeInformation) => boolean): [string, ts.TextSpan] | undefined;
14
+ export declare function transformTextChange(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textChange: ts.TextChange, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): [string, ts.TextChange] | undefined;
15
+ export declare function transformTextSpan(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textSpan: ts.TextSpan, fallbackToAnyMatch: boolean, filter: (data: CodeInformation) => boolean): [string, ts.TextSpan] | undefined;
16
16
  export declare function toSourceOffset(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): [fileName: string, offset: number] | undefined;
17
- export declare function toSourceRanges(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, start: number, end: number, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, start: number, end: number]>;
17
+ 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]>;
18
18
  export declare function toSourceOffsets(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, offset: number]>;
19
19
  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>;
20
20
  export declare function toGeneratedOffset(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, position: number, filter: (data: CodeInformation) => boolean): number | undefined;
@@ -19,9 +19,9 @@ const language_core_1 = require("@volar/language-core");
19
19
  const utils_1 = require("./utils");
20
20
  const transformedDiagnostics = new WeakMap();
21
21
  const transformedSourceFile = new WeakSet();
22
- function transformCallHierarchyItem(language, item, filter) {
23
- const span = transformSpan(language, item.file, item.span, filter);
24
- const selectionSpan = transformSpan(language, item.file, item.selectionSpan, filter);
22
+ function transformCallHierarchyItem(language, item, fallbackToAnyMatch, filter) {
23
+ const span = transformSpan(language, item.file, item.span, fallbackToAnyMatch, filter);
24
+ const selectionSpan = transformSpan(language, item.file, item.selectionSpan, fallbackToAnyMatch, filter);
25
25
  return {
26
26
  ...item,
27
27
  file: span?.fileName ?? item.file,
@@ -46,7 +46,7 @@ function transformDiagnostic(language, diagnostic, program, isTsc) {
46
46
  const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, {
47
47
  start: diagnostic.start,
48
48
  length: diagnostic.length
49
- }, data => (0, language_core_1.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? [];
49
+ }, true, data => (0, language_core_1.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? [];
50
50
  const actualDiagnosticFile = sourceSpanFileName
51
51
  ? diagnostic.file.fileName === sourceSpanFileName
52
52
  ? diagnostic.file
@@ -87,14 +87,14 @@ function fillSourceFileText(language, sourceFile) {
87
87
  + sourceFile.text.substring(sourceScript.snapshot.getLength());
88
88
  }
89
89
  }
90
- function transformFileTextChanges(language, changes, filter) {
90
+ function transformFileTextChanges(language, changes, fallbackToAnyMatch, filter) {
91
91
  const changesPerFile = {};
92
92
  const newFiles = new Set();
93
93
  for (const fileChanges of changes) {
94
94
  const [_, source] = (0, utils_1.getServiceScript)(language, fileChanges.fileName);
95
95
  if (source) {
96
96
  fileChanges.textChanges.forEach(c => {
97
- const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c.span, filter) ?? {};
97
+ const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c.span, fallbackToAnyMatch, filter) ?? {};
98
98
  if (fileName && textSpan) {
99
99
  (changesPerFile[fileName] ?? (changesPerFile[fileName] = [])).push({ ...c, span: textSpan });
100
100
  }
@@ -120,8 +120,8 @@ function transformFileTextChanges(language, changes, filter) {
120
120
  }
121
121
  return result;
122
122
  }
123
- function transformDocumentSpan(language, documentSpan, filter, shouldFallback) {
124
- let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, filter);
123
+ function transformDocumentSpan(language, documentSpan, fallbackToAnyMatch, filter, shouldFallback) {
124
+ let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, fallbackToAnyMatch, filter);
125
125
  if (!textSpan && shouldFallback) {
126
126
  textSpan = {
127
127
  fileName: documentSpan.fileName,
@@ -131,9 +131,9 @@ function transformDocumentSpan(language, documentSpan, filter, shouldFallback) {
131
131
  if (!textSpan) {
132
132
  return;
133
133
  }
134
- const contextSpan = transformSpan(language, documentSpan.fileName, documentSpan.contextSpan, filter);
135
- const originalTextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalTextSpan, filter);
136
- const originalContextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalContextSpan, filter);
134
+ const contextSpan = transformSpan(language, documentSpan.fileName, documentSpan.contextSpan, fallbackToAnyMatch, filter);
135
+ const originalTextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalTextSpan, fallbackToAnyMatch, filter);
136
+ const originalContextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalContextSpan, fallbackToAnyMatch, filter);
137
137
  return {
138
138
  ...documentSpan,
139
139
  fileName: textSpan.fileName,
@@ -144,13 +144,13 @@ function transformDocumentSpan(language, documentSpan, filter, shouldFallback) {
144
144
  originalContextSpan: originalContextSpan?.textSpan,
145
145
  };
146
146
  }
147
- function transformSpan(language, fileName, textSpan, filter) {
147
+ function transformSpan(language, fileName, textSpan, fallbackToAnyMatch, filter) {
148
148
  if (!fileName || !textSpan) {
149
149
  return;
150
150
  }
151
151
  const [serviceScript] = (0, utils_1.getServiceScript)(language, fileName);
152
152
  if (serviceScript) {
153
- const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, textSpan, filter) ?? [];
153
+ const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, textSpan, fallbackToAnyMatch, filter) ?? [];
154
154
  if (sourceSpan && sourceSpanFileName) {
155
155
  return {
156
156
  fileName: sourceSpanFileName,
@@ -165,8 +165,8 @@ function transformSpan(language, fileName, textSpan, filter) {
165
165
  };
166
166
  }
167
167
  }
168
- function transformTextChange(sourceScript, language, serviceScript, textChange, filter) {
169
- const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, filter) ?? [];
168
+ function transformTextChange(sourceScript, language, serviceScript, textChange, fallbackToAnyMatch, filter) {
169
+ const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, fallbackToAnyMatch, filter) ?? [];
170
170
  if (sourceSpan && sourceSpanFileName) {
171
171
  return [sourceSpanFileName, {
172
172
  newText: textChange.newText,
@@ -175,10 +175,10 @@ function transformTextChange(sourceScript, language, serviceScript, textChange,
175
175
  }
176
176
  return undefined;
177
177
  }
178
- function transformTextSpan(sourceScript, language, serviceScript, textSpan, filter) {
178
+ function transformTextSpan(sourceScript, language, serviceScript, textSpan, fallbackToAnyMatch, filter) {
179
179
  const start = textSpan.start;
180
180
  const end = textSpan.start + textSpan.length;
181
- for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, filter)) {
181
+ for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter)) {
182
182
  return [fileName, {
183
183
  start: sourceStart,
184
184
  length: sourceEnd - sourceStart,
@@ -190,16 +190,16 @@ function toSourceOffset(sourceScript, language, serviceScript, position, filter)
190
190
  return source;
191
191
  }
192
192
  }
193
- function* toSourceRanges(sourceScript, language, serviceScript, start, end, filter) {
193
+ function* toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter) {
194
194
  if (sourceScript) {
195
195
  const map = language.maps.get(serviceScript.code, sourceScript);
196
- for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) {
196
+ for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {
197
197
  yield [sourceScript.id, sourceStart, sourceEnd];
198
198
  }
199
199
  }
200
200
  else {
201
201
  for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {
202
- for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) {
202
+ for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {
203
203
  yield [sourceScript.id, sourceStart, sourceEnd];
204
204
  }
205
205
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/typescript",
3
- "version": "2.4.7",
3
+ "version": "2.4.8",
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.7",
15
+ "@volar/language-core": "2.4.8",
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.7"
22
+ "@volar/language-service": "2.4.8"
23
23
  },
24
- "gitHead": "73a48189f9066883c90c6b29040a3301c6dc3195"
24
+ "gitHead": "bfa90aec50b975189f574b47affb619b9e1d679d"
25
25
  }