From c1630e59d1855d009dcc8053e4d1fae346f189e5 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Mon, 19 Sep 2016 17:25:27 -0700 Subject: [PATCH] Fixup --- src/server/editorServices.ts | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index 05f6a38007..2ae3f812d4 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -364,7 +364,8 @@ namespace ts.server { } private onTypeRootFileChanged(project: ConfiguredProject, fileName: string) { - this.onSourceFileInDirectoryChangedForConfiguredProject(project, fileName); + this.updateConfiguredProject(project); + this.refreshInferredProjects(); } /** @@ -387,18 +388,27 @@ namespace ts.server { () => this.handleChangeInSourceFileForConfiguredProject(project)); } + getTypeRootsVersion(project: ConfiguredProject) { + const roots = project.getEffectiveTypeRoots(); + if (roots === undefined) { + return 0; + } + + return Math.max.apply(Math, project.getEffectiveTypeRoots().map(root => { + if (this.host.directoryExists(root)) { + return +this.host.getModifiedTime(root); + } + return 0; + })); + } + private handleChangeInSourceFileForConfiguredProject(project: ConfiguredProject) { const { projectOptions, configFileErrors } = this.convertConfigFileContentToProjectOptions(project.configFileName); this.reportConfigFileDiagnostics(project.getProjectName(), configFileErrors); const newRootFiles = projectOptions.files.map((f => this.getCanonicalFileName(f))); const currentRootFiles = project.getRootFiles().map((f => this.getCanonicalFileName(f))); - const lastUpdateTypesRoot: number = Math.max.apply(Math, project.getEffectiveTypeRoots().map(root => { - if (this.host.directoryExists(root)) { - return +this.host.getModifiedTime(root); - } - return 0; - })); + const lastUpdateTypesRoot: number = this.getTypeRootsVersion(project); // We check if the project file list has changed. If so, we update the project. if (!arrayIsEqualTo(currentRootFiles.sort(), newRootFiles.sort()) || (lastUpdateTypesRoot > project.lastUpdatedTypesRootTime)) {