@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
|
|
144
|
-
|
|
145
|
-
|
|
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
|
|
539
|
-
|
|
540
|
-
|
|
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
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
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
|
|
581
|
-
end
|
|
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) {
|
package/lib/node/transform.d.ts
CHANGED
|
@@ -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>;
|
package/lib/node/transform.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
22
|
+
"@volar/language-service": "2.4.14"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "e8280897a7bc0e0366f657b6aefd4230ad5ee027"
|
|
25
25
|
}
|