From 94033f212dcfca2a351b3b71d9e281d3e3f9789e Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 25 Jul 2018 13:32:27 -0700 Subject: [PATCH] If project name is specified in compile on save, do not update all projects to just use that project --- src/server/session.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/server/session.ts b/src/server/session.ts index aae9ab8980f..ea0bf21dc3e 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1465,13 +1465,24 @@ namespace ts.server { } private getCompileOnSaveAffectedFileList(args: protocol.FileRequestArgs): ReadonlyArray { - const info = this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file); + let info: ScriptInfo | undefined; + let project: Project | undefined; + if (args.projectFileName) { + // Do not update all projects if we are looking for specific project to compile on save + project = this.projectService.findProject(args.projectFileName)!; + if (project.dirty) project.updateGraph(); + info = this.projectService.getScriptInfo(args.file); + } + else { + info = this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file); + } + if (!info) { return emptyArray; } // if specified a project, we only return affected file list in this project - const projects = args.projectFileName ? [this.projectService.findProject(args.projectFileName)!] : info.containingProjects; + const projects = args.projectFileName ? [project!] : info.containingProjects; const symLinkedProjects = !args.projectFileName && this.projectService.getSymlinkedProjects(info); return combineProjectOutput( info,