volar-service-typescript 0.0.57 → 0.0.58
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/plugins/semantic.js +20 -3
- package/package.json +4 -4
package/lib/plugins/semantic.js
CHANGED
|
@@ -775,15 +775,32 @@ function create(ts, { isValidationEnabled = async (document, context) => {
|
|
|
775
775
|
async function isCancellationRequestedWhileSync(token) {
|
|
776
776
|
if (sys.sync) {
|
|
777
777
|
let oldSysVersion;
|
|
778
|
-
let newSysVersion =
|
|
778
|
+
let newSysVersion = sys.version;
|
|
779
779
|
do {
|
|
780
780
|
oldSysVersion = newSysVersion;
|
|
781
|
-
languageService.getProgram(); // trigger
|
|
782
|
-
newSysVersion = await sys.sync
|
|
781
|
+
languageService.getProgram(); // trigger file requests
|
|
782
|
+
newSysVersion = await aggressiveSync(sys.sync);
|
|
783
783
|
} while (newSysVersion !== oldSysVersion && !token.isCancellationRequested);
|
|
784
784
|
}
|
|
785
785
|
return token.isCancellationRequested;
|
|
786
786
|
}
|
|
787
|
+
async function aggressiveSync(fn) {
|
|
788
|
+
const promise = fn();
|
|
789
|
+
let newVersion;
|
|
790
|
+
let syncing = true;
|
|
791
|
+
promise.then(version => {
|
|
792
|
+
newVersion = version;
|
|
793
|
+
syncing = false;
|
|
794
|
+
});
|
|
795
|
+
while (syncing) {
|
|
796
|
+
languageService.getProgram(); // trigger file requests before old requests are completed
|
|
797
|
+
await Promise.race([promise, sleep(10)]);
|
|
798
|
+
}
|
|
799
|
+
return newVersion;
|
|
800
|
+
}
|
|
801
|
+
function sleep(ms) {
|
|
802
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
803
|
+
}
|
|
787
804
|
function getVirtualScriptByUri(uri) {
|
|
788
805
|
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
789
806
|
const sourceScript = decoded && context.language.scripts.get(decoded[0]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volar-service-typescript",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.58",
|
|
4
4
|
"description": "Integrate TypeScript into Volar",
|
|
5
5
|
"homepage": "https://github.com/volarjs/services/tree/master/packages/typescript",
|
|
6
6
|
"bugs": "https://github.com/volarjs/services/issues",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/path-browserify": "latest",
|
|
28
28
|
"@types/semver": "latest",
|
|
29
|
-
"@volar/typescript": "~2.4.0-alpha.
|
|
29
|
+
"@volar/typescript": "~2.4.0-alpha.12"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"path-browserify": "^1.0.1",
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"vscode-uri": "^3.0.8"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@volar/language-service": "~2.4.0-alpha.
|
|
40
|
+
"@volar/language-service": "~2.4.0-alpha.12"
|
|
41
41
|
},
|
|
42
42
|
"peerDependenciesMeta": {
|
|
43
43
|
"@volar/language-service": {
|
|
44
44
|
"optional": true
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "96b6c53a6e77e02ac1a2a28ef6a114fb931a3251"
|
|
48
48
|
}
|