@volar/typescript 2.4.0-alpha.16 → 2.4.0-alpha.18
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.
|
@@ -29,6 +29,7 @@ function createProxyLanguageService(languageService) {
|
|
|
29
29
|
case 'getDocumentHighlights': return getDocumentHighlights(language, target[p]);
|
|
30
30
|
case 'getApplicableRefactors': return getApplicableRefactors(language, target[p]);
|
|
31
31
|
case 'getEditsForRefactor': return getEditsForRefactor(language, target[p]);
|
|
32
|
+
case 'getCombinedCodeFix': return getCombinedCodeFix(language, target[p]);
|
|
32
33
|
case 'getRenameInfo': return getRenameInfo(language, target[p]);
|
|
33
34
|
case 'getCodeFixesAtPosition': return getCodeFixesAtPosition(language, target[p]);
|
|
34
35
|
case 'getEncodedSemanticClassifications': return getEncodedSemanticClassifications(language, target[p]);
|
|
@@ -46,6 +47,7 @@ function createProxyLanguageService(languageService) {
|
|
|
46
47
|
case 'getCompletionEntryDetails': return getCompletionEntryDetails(language, target[p]);
|
|
47
48
|
case 'provideInlayHints': return provideInlayHints(language, target[p]);
|
|
48
49
|
case 'getFileReferences': return getFileReferences(language, target[p]);
|
|
50
|
+
case 'getNavigateToItems': return getNavigateToItems(language, target[p]);
|
|
49
51
|
}
|
|
50
52
|
};
|
|
51
53
|
},
|
|
@@ -467,6 +469,13 @@ function getEditsForRefactor(language, getEditsForRefactor) {
|
|
|
467
469
|
}
|
|
468
470
|
};
|
|
469
471
|
}
|
|
472
|
+
function getCombinedCodeFix(language, getCombinedCodeFix) {
|
|
473
|
+
return (...args) => {
|
|
474
|
+
const codeActions = getCombinedCodeFix(...args);
|
|
475
|
+
codeActions.changes = (0, transform_1.transformFileTextChanges)(language, codeActions.changes, language_core_1.isCodeActionsEnabled);
|
|
476
|
+
return codeActions;
|
|
477
|
+
};
|
|
478
|
+
}
|
|
470
479
|
function getRenameInfo(language, getRenameInfo) {
|
|
471
480
|
return (filePath, position, options) => {
|
|
472
481
|
const fileName = filePath.replace(windowsPathReg, '/');
|
|
@@ -861,6 +870,15 @@ function getFileReferences(language, getFileReferences) {
|
|
|
861
870
|
return (0, dedupe_1.dedupeDocumentSpans)(resolved);
|
|
862
871
|
};
|
|
863
872
|
}
|
|
873
|
+
function getNavigateToItems(language, getNavigateToItems) {
|
|
874
|
+
return (...args) => {
|
|
875
|
+
const unresolved = getNavigateToItems(...args);
|
|
876
|
+
const resolved = unresolved
|
|
877
|
+
.map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
|
|
878
|
+
.filter(s => !!s);
|
|
879
|
+
return (0, dedupe_1.dedupeDocumentSpans)(resolved);
|
|
880
|
+
};
|
|
881
|
+
}
|
|
864
882
|
function linkedCodeFeatureWorker(language, fileName, position, filter, worker, getLinkedCodes) {
|
|
865
883
|
const results = [];
|
|
866
884
|
const processedFilePositions = new Set();
|
|
@@ -36,7 +36,8 @@ function createAsyncLanguageServicePlugin(extensions, getScriptKindForExtraExten
|
|
|
36
36
|
if (getScriptKind) {
|
|
37
37
|
info.languageServiceHost.getScriptKind = fileName => {
|
|
38
38
|
if (!initialized && extensions.some(ext => fileName.endsWith(ext))) {
|
|
39
|
-
//
|
|
39
|
+
// bypass upstream bug https://github.com/microsoft/TypeScript/issues/57631
|
|
40
|
+
// TODO: check if the bug is fixed in 5.5
|
|
40
41
|
if (typeof getScriptKindForExtraExtensions === 'function') {
|
|
41
42
|
return getScriptKindForExtraExtensions(fileName);
|
|
42
43
|
}
|
|
@@ -58,17 +59,11 @@ function createAsyncLanguageServicePlugin(extensions, getScriptKindForExtraExten
|
|
|
58
59
|
const { proxy, initialize } = (0, proxyLanguageService_1.createProxyLanguageService)(info.languageService);
|
|
59
60
|
info.languageService = proxy;
|
|
60
61
|
create(ts, info).then(({ languagePlugins, setup }) => {
|
|
61
|
-
const syncedScriptVersions = new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames);
|
|
62
62
|
const language = (0, language_core_1.createLanguage)([
|
|
63
63
|
...languagePlugins,
|
|
64
64
|
{ getLanguageId: common_1.resolveFileLanguageId },
|
|
65
65
|
], new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames), fileName => {
|
|
66
|
-
const
|
|
67
|
-
if (syncedScriptVersions.get(fileName) === version) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
syncedScriptVersions.set(fileName, version);
|
|
71
|
-
const snapshot = getScriptSnapshot(fileName);
|
|
66
|
+
const snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
|
|
72
67
|
if (snapshot) {
|
|
73
68
|
language.scripts.set(fileName, snapshot);
|
|
74
69
|
}
|
|
@@ -25,19 +25,11 @@ function createLanguageServicePlugin(create) {
|
|
|
25
25
|
.map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? [])
|
|
26
26
|
.flat();
|
|
27
27
|
exports.projectExternalFileExtensions.set(info.project, extensions);
|
|
28
|
-
const getScriptSnapshot = info.languageServiceHost.getScriptSnapshot.bind(info.languageServiceHost);
|
|
29
|
-
const getScriptVersion = info.languageServiceHost.getScriptVersion.bind(info.languageServiceHost);
|
|
30
|
-
const syncedScriptVersions = new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames);
|
|
31
28
|
const language = (0, language_core_1.createLanguage)([
|
|
32
29
|
...languagePlugins,
|
|
33
30
|
{ getLanguageId: common_1.resolveFileLanguageId },
|
|
34
31
|
], new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames), fileName => {
|
|
35
|
-
const
|
|
36
|
-
if (syncedScriptVersions.get(fileName) === version) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
syncedScriptVersions.set(fileName, version);
|
|
40
|
-
const snapshot = getScriptSnapshot(fileName);
|
|
32
|
+
const snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
|
|
41
33
|
if (snapshot) {
|
|
42
34
|
language.scripts.set(fileName, snapshot);
|
|
43
35
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/typescript",
|
|
3
|
-
"version": "2.4.0-alpha.
|
|
3
|
+
"version": "2.4.0-alpha.18",
|
|
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.0-alpha.
|
|
15
|
+
"@volar/language-core": "2.4.0-alpha.18",
|
|
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.0-alpha.
|
|
22
|
+
"@volar/language-service": "2.4.0-alpha.18"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "ea2e22ca17116b4274d661a014cff040c1d206cb"
|
|
25
25
|
}
|