@volar/typescript 2.4.0-alpha.1 → 2.4.0-alpha.2
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.
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Language } from '@volar/language-core';
|
|
2
2
|
import type * as ts from 'typescript';
|
|
3
|
-
import { URI } from 'vscode-uri';
|
|
4
3
|
import type { TypeScriptExtraServiceScript } from '../..';
|
|
5
4
|
import type { createSys } from './createSys';
|
|
6
5
|
export interface TypeScriptProjectHost extends Pick<ts.LanguageServiceHost, 'getLocalizedDiagnosticMessages' | 'getCurrentDirectory' | 'getCompilationSettings' | 'getProjectReferences' | 'getScriptFileNames' | 'getProjectVersion' | 'getScriptSnapshot'> {
|
|
7
6
|
}
|
|
8
|
-
export declare function createLanguageServiceHost(ts: typeof import('typescript'), sys: ReturnType<typeof createSys> | ts.System, language: Language<
|
|
7
|
+
export declare function createLanguageServiceHost<T>(ts: typeof import('typescript'), sys: ReturnType<typeof createSys> | ts.System, language: Language<T>, asScriptId: (fileName: string) => T, projectHost: TypeScriptProjectHost): {
|
|
9
8
|
languageServiceHost: ts.LanguageServiceHost;
|
|
10
9
|
getExtraServiceScript: (fileName: string) => TypeScriptExtraServiceScript | undefined;
|
|
11
10
|
};
|
|
@@ -4,7 +4,7 @@ exports.createLanguageServiceHost = createLanguageServiceHost;
|
|
|
4
4
|
const language_core_1 = require("@volar/language-core");
|
|
5
5
|
const path = require("path-browserify");
|
|
6
6
|
const resolveModuleName_1 = require("../resolveModuleName");
|
|
7
|
-
function createLanguageServiceHost(ts, sys, language,
|
|
7
|
+
function createLanguageServiceHost(ts, sys, language, asScriptId, projectHost) {
|
|
8
8
|
const scriptVersions = new language_core_1.FileMap(sys.useCaseSensitiveFileNames);
|
|
9
9
|
let lastProjectVersion;
|
|
10
10
|
let tsProjectVersion = 0;
|
|
@@ -82,7 +82,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
82
82
|
if (extraScriptRegistry.has(fileName)) {
|
|
83
83
|
return extraScriptRegistry.get(fileName).scriptKind;
|
|
84
84
|
}
|
|
85
|
-
const sourceScript = language.scripts.get(
|
|
85
|
+
const sourceScript = language.scripts.get(asScriptId(fileName));
|
|
86
86
|
if (sourceScript?.generated) {
|
|
87
87
|
const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
88
88
|
if (serviceScript) {
|
|
@@ -119,7 +119,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
119
119
|
if (language.plugins.some(plugin => plugin.typescript?.extraFileExtensions.length)) {
|
|
120
120
|
// TODO: can this share between monorepo packages?
|
|
121
121
|
const moduleCache = ts.createModuleResolutionCache(languageServiceHost.getCurrentDirectory(), languageServiceHost.useCaseSensitiveFileNames?.() ? s => s : s => s.toLowerCase(), languageServiceHost.getCompilationSettings());
|
|
122
|
-
const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, languageServiceHost, language.plugins, fileName => language.scripts.get(
|
|
122
|
+
const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, languageServiceHost, language.plugins, fileName => language.scripts.get(asScriptId(fileName)));
|
|
123
123
|
let lastSysVersion = 'version' in sys ? sys.version : undefined;
|
|
124
124
|
languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, sourceFile) => {
|
|
125
125
|
if ('version' in sys && lastSysVersion !== sys.version) {
|
|
@@ -160,7 +160,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
160
160
|
const newOtherVirtualFileSnapshots = new Set();
|
|
161
161
|
const tsFileNamesSet = new Set();
|
|
162
162
|
for (const fileName of projectHost.getScriptFileNames()) {
|
|
163
|
-
const sourceScript = language.scripts.get(
|
|
163
|
+
const sourceScript = language.scripts.get(asScriptId(fileName));
|
|
164
164
|
if (sourceScript?.generated) {
|
|
165
165
|
const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
166
166
|
if (serviceScript) {
|
|
@@ -199,7 +199,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
199
199
|
if (extraScriptRegistry.has(fileName)) {
|
|
200
200
|
return extraScriptRegistry.get(fileName).code.snapshot;
|
|
201
201
|
}
|
|
202
|
-
const sourceScript = language.scripts.get(
|
|
202
|
+
const sourceScript = language.scripts.get(asScriptId(fileName));
|
|
203
203
|
if (sourceScript?.generated) {
|
|
204
204
|
const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
205
205
|
if (serviceScript) {
|
|
@@ -223,7 +223,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
223
223
|
}
|
|
224
224
|
return version.map.get(snapshot).toString();
|
|
225
225
|
}
|
|
226
|
-
const sourceScript = language.scripts.get(
|
|
226
|
+
const sourceScript = language.scripts.get(asScriptId(fileName));
|
|
227
227
|
if (sourceScript?.generated) {
|
|
228
228
|
const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);
|
|
229
229
|
if (serviceScript) {
|
|
@@ -235,7 +235,7 @@ function createLanguageServiceHost(ts, sys, language, asUri, projectHost) {
|
|
|
235
235
|
}
|
|
236
236
|
const isOpenedFile = !!projectHost.getScriptSnapshot(fileName);
|
|
237
237
|
if (isOpenedFile) {
|
|
238
|
-
const sourceScript = language.scripts.get(
|
|
238
|
+
const sourceScript = language.scripts.get(asScriptId(fileName));
|
|
239
239
|
if (sourceScript && !sourceScript.generated) {
|
|
240
240
|
if (!version.map.has(sourceScript.snapshot)) {
|
|
241
241
|
version.map.set(sourceScript.snapshot, version.lastVersion++);
|
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.2",
|
|
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.2",
|
|
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.2"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "62914047f925b79391fee6e4f697705b77641baf"
|
|
25
25
|
}
|