@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.
- package/lib/node/proxyLanguageService.js +35 -35
- package/lib/node/transform.d.ts +7 -7
- package/lib/node/transform.js +20 -20
- package/package.json +4 -4
|
@@ -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
|
};
|
package/lib/node/transform.d.ts
CHANGED
|
@@ -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;
|
package/lib/node/transform.js
CHANGED
|
@@ -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),
|
|
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),
|
|
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.
|
|
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.
|
|
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.
|
|
22
|
+
"@volar/language-service": "2.4.8"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "bfa90aec50b975189f574b47affb619b9e1d679d"
|
|
25
25
|
}
|