Skip to content

Commit bdbd555

Browse files
committed
fix(typescript): should not suppressing getLanguageId crashes
close #253
1 parent 3e996b3 commit bdbd555

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

packages/typescript/lib/quickstart/createAsyncLanguageServicePlugin.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,23 @@ export function createAsyncLanguageServicePlugin(
8282
],
8383
new FileMap(ts.sys.useCaseSensitiveFileNames),
8484
fileName => {
85+
let snapshot: ts.IScriptSnapshot | undefined;
86+
8587
try { // getSnapshot could be crashed if the file is too large
86-
let snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
88+
snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
8789
if (!snapshot) {
8890
// trigger projectService.getOrCreateScriptInfoNotOpenedByClient
8991
info.project.getScriptVersion(fileName);
9092
snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
9193
}
92-
if (snapshot) {
93-
language.scripts.set(fileName, snapshot);
94-
}
95-
else {
96-
language.scripts.delete(fileName);
97-
}
9894
} catch { }
95+
96+
if (snapshot) {
97+
language.scripts.set(fileName, snapshot);
98+
}
99+
else {
100+
language.scripts.delete(fileName);
101+
}
99102
}
100103
);
101104

packages/typescript/lib/quickstart/createLanguageServicePlugin.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,23 @@ export function createLanguageServicePlugin(
4141
],
4242
new FileMap(ts.sys.useCaseSensitiveFileNames),
4343
fileName => {
44+
let snapshot: ts.IScriptSnapshot | undefined;
45+
4446
try { // getSnapshot could be crashed if the file is too large
45-
let snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
47+
snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
4648
if (!snapshot) {
4749
// trigger projectService.getOrCreateScriptInfoNotOpenedByClient
4850
info.project.getScriptVersion(fileName);
4951
snapshot = info.project.getScriptInfo(fileName)?.getSnapshot();
5052
}
51-
if (snapshot) {
52-
language.scripts.set(fileName, snapshot);
53-
}
54-
else {
55-
language.scripts.delete(fileName);
56-
}
5753
} catch { }
54+
55+
if (snapshot) {
56+
language.scripts.set(fileName, snapshot);
57+
}
58+
else {
59+
language.scripts.delete(fileName);
60+
}
5861
}
5962
);
6063

0 commit comments

Comments
 (0)