diff --git a/src/server/session.ts b/src/server/session.ts index 7e6bca66c04..52bf905dedc 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -711,7 +711,8 @@ namespace ts.server { catch { } // tslint:disable-line no-empty } - if (err.message && err.message.indexOf(`Could not find sourceFile:`) !== -1) { + if (err.hasOwnProperty("ProgramFiles")) { + msg += `\n\nProgram files: {(err as any)["ProgramFiles"]}\n`; msg += `\n\nProjects::\n`; let counter = 0; const addProjectInfo = (project: Project) => { diff --git a/src/services/services.ts b/src/services/services.ts index b769ee2da3e..51987c26889 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1158,7 +1158,12 @@ namespace ts { function getValidSourceFile(fileName: string): SourceFile { const sourceFile = program.getSourceFile(fileName); if (!sourceFile) { - throw new Error(`Could not find sourceFile: '${fileName}'.`); + let error = new Error(`Could not find sourceFile: '${fileName}'.`); + + // Attach sidecar data for the server log + (error as any)["ProgramFiles"] = program && JSON.stringify(program.getSourceFiles().map(f => f.fileName)); + + throw error; } return sourceFile; }