@volar/typescript 2.1.4 → 2.1.5-patch.1
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.
|
@@ -58,28 +58,24 @@ function decorateLanguageServiceHost(virtualFiles, languageServiceHost, ts) {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
languageServiceHost.getScriptSnapshot = fileName => {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return
|
|
61
|
+
const virtualScript = updateVirtualScript(fileName);
|
|
62
|
+
if (virtualScript) {
|
|
63
|
+
return virtualScript.snapshot;
|
|
64
64
|
}
|
|
65
65
|
return getScriptSnapshot(fileName);
|
|
66
66
|
};
|
|
67
67
|
if (getScriptKind) {
|
|
68
68
|
languageServiceHost.getScriptKind = fileName => {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (script) {
|
|
73
|
-
return script.kind;
|
|
74
|
-
}
|
|
75
|
-
return ts.ScriptKind.Deferred;
|
|
69
|
+
const virtualScript = updateVirtualScript(fileName);
|
|
70
|
+
if (virtualScript) {
|
|
71
|
+
return virtualScript.kind;
|
|
76
72
|
}
|
|
77
73
|
return getScriptKind(fileName);
|
|
78
74
|
};
|
|
79
75
|
}
|
|
80
|
-
function
|
|
76
|
+
function updateVirtualScript(fileName) {
|
|
81
77
|
const version = languageServiceHost.getScriptVersion(fileName);
|
|
82
|
-
if (version !== scripts.get(fileName)?.
|
|
78
|
+
if (version !== scripts.get(fileName)?.[0]) {
|
|
83
79
|
let extension = '.ts';
|
|
84
80
|
let snapshotSnapshot;
|
|
85
81
|
let scriptKind = ts.ScriptKind.TS;
|
|
@@ -106,14 +102,18 @@ function decorateLanguageServiceHost(virtualFiles, languageServiceHost, ts) {
|
|
|
106
102
|
extraProjectVersion++;
|
|
107
103
|
virtualFiles.delete(fileName);
|
|
108
104
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
105
|
+
if (snapshotSnapshot) {
|
|
106
|
+
scripts.set(fileName, [
|
|
107
|
+
version,
|
|
108
|
+
{
|
|
109
|
+
extension,
|
|
110
|
+
snapshot: snapshotSnapshot,
|
|
111
|
+
kind: scriptKind,
|
|
112
|
+
}
|
|
113
|
+
]);
|
|
114
|
+
}
|
|
115
115
|
}
|
|
116
|
-
return scripts.get(fileName);
|
|
116
|
+
return scripts.get(fileName)?.[1];
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
exports.decorateLanguageServiceHost = decorateLanguageServiceHost;
|
|
@@ -17,36 +17,31 @@ function createSys(ts, env, currentDirectory) {
|
|
|
17
17
|
};
|
|
18
18
|
const promises = new Set();
|
|
19
19
|
const fileWatcher = env.onDidChangeWatchedFiles?.(({ changes }) => {
|
|
20
|
+
version++;
|
|
20
21
|
for (const change of changes) {
|
|
21
22
|
const fileName = env.typescript.uriToFileName(change.uri);
|
|
22
23
|
const dirName = path.dirname(fileName);
|
|
23
24
|
const baseName = path.basename(fileName);
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
text: undefined,
|
|
45
|
-
requestedStat: true,
|
|
46
|
-
requestedText: true,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
25
|
+
const fileExists = change.type === 1
|
|
26
|
+
|| change.type === 2;
|
|
27
|
+
const dir = getDir(dirName, fileExists);
|
|
28
|
+
dir.files.set(normalizeFileId(baseName), fileExists ? {
|
|
29
|
+
name: baseName,
|
|
30
|
+
stat: {
|
|
31
|
+
type: 1,
|
|
32
|
+
ctime: Date.now(),
|
|
33
|
+
mtime: Date.now(),
|
|
34
|
+
size: -1,
|
|
35
|
+
},
|
|
36
|
+
requestedStat: false,
|
|
37
|
+
requestedText: false,
|
|
38
|
+
} : {
|
|
39
|
+
name: baseName,
|
|
40
|
+
stat: undefined,
|
|
41
|
+
text: undefined,
|
|
42
|
+
requestedStat: true,
|
|
43
|
+
requestedText: true,
|
|
44
|
+
});
|
|
50
45
|
}
|
|
51
46
|
});
|
|
52
47
|
return {
|
|
@@ -335,7 +330,7 @@ function createSys(ts, env, currentDirectory) {
|
|
|
335
330
|
}
|
|
336
331
|
return updated;
|
|
337
332
|
}
|
|
338
|
-
function getDir(dirName) {
|
|
333
|
+
function getDir(dirName, markExists = false) {
|
|
339
334
|
const dirNames = [];
|
|
340
335
|
let currentDirPath = dirName;
|
|
341
336
|
let currentDirName = path.basename(currentDirPath);
|
|
@@ -350,6 +345,10 @@ function createSys(ts, env, currentDirectory) {
|
|
|
350
345
|
for (let i = dirNames.length - 1; i >= 0; i--) {
|
|
351
346
|
const nextDirName = dirNames[i];
|
|
352
347
|
currentDir = getDirFromDir(currentDir, nextDirName);
|
|
348
|
+
if (markExists && !currentDir.exists) {
|
|
349
|
+
currentDir.exists = true;
|
|
350
|
+
version++;
|
|
351
|
+
}
|
|
353
352
|
}
|
|
354
353
|
return currentDir;
|
|
355
354
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/typescript",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.5-patch.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"**/*.js",
|
|
@@ -12,13 +12,12 @@
|
|
|
12
12
|
"directory": "packages/typescript"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@volar/language-core": "2.1.
|
|
15
|
+
"@volar/language-core": "2.1.5",
|
|
16
16
|
"path-browserify": "^1.0.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@types/node": "latest",
|
|
20
20
|
"@types/path-browserify": "latest",
|
|
21
|
-
"@volar/language-service": "2.1.
|
|
22
|
-
}
|
|
23
|
-
"gitHead": "cc46289ff6be015ee41a1896fdaef6aa68cee755"
|
|
21
|
+
"@volar/language-service": "2.1.5"
|
|
22
|
+
}
|
|
24
23
|
}
|