Skip to content

Commit 753ef97

Browse files
committed
resolve library chain, fix test
1 parent 4d31216 commit 753ef97

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

src/harness/fourslash.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,20 @@ namespace FourSlash {
317317
}
318318
});
319319
if (!compilationOptions.noLib) {
320-
this.languageServiceAdapterHost.addScript(Harness.Compiler.defaultLibFileName,
321-
Harness.Compiler.getDefaultLibrarySourceFile()!.text, /*isRootFile*/ false);
320+
const libs = compilationOptions.lib || [Harness.Compiler.defaultLibFileName];
321+
const libFiles = libs.map(lib => {
322+
const sourceFile = Harness.Compiler.getDefaultLibrarySourceFile(lib)!;
323+
this.languageServiceAdapterHost.addScript(lib, sourceFile.text, /*isRootFile*/ false);
324+
return sourceFile;
325+
});
326+
for (const libFile of libFiles) {
327+
const resolvedResult = ts.preProcessFile(libFile.text);
328+
for (const libReference of resolvedResult.libReferenceDirectives) {
329+
const mapped = ts.libMap.get(libReference.fileName.toLowerCase())!;
330+
this.languageServiceAdapterHost.addScript(mapped,
331+
Harness.Compiler.getDefaultLibrarySourceFile(mapped)!.text, /*isRootFile*/ false);
332+
}
333+
}
322334
}
323335
}
324336

@@ -3660,7 +3672,7 @@ namespace FourSlashInterface {
36603672
}
36613673

36623674
export class Plugins {
3663-
constructor (private state: FourSlash.TestState) {
3675+
constructor(private state: FourSlash.TestState) {
36643676
}
36653677

36663678
public configurePlugin(pluginName: string, configuration: any): void {

tests/baselines/reference/compileOnSaveWorksWhenEmitBlockingErrorOnOtherFile.baseline

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ EmitSkipped: true
22
Diagnostics:
33
Cannot write file '/tests/cases/fourslash/b.js' because it would overwrite input file.
44
Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.
5-
File 'lib.es3.d.ts' not found.
65

76
EmitSkipped: false
87

0 commit comments

Comments
 (0)