private enableLanguageServiceForProject()

in server/src/session.ts [360:385]


  private enableLanguageServiceForProject(project: ts.server.Project): void {
    const {projectName} = project;
    if (project.isClosed()) {
      this.info(`Cannot enable language service for closed project ${projectName}.`);
      return;
    }
    if (!project.languageServiceEnabled) {
      project.enableLanguageService();
      // When the language service got disabled, the program was discarded via
      // languageService.cleanupSemanticCache(). However, the program is not
      // recreated when the language service is re-enabled. We manually mark the
      // project as dirty to force update the graph.
      project.markAsDirty();
    }
    if (!this.ivy) {
      // Immediately enable Legacy / View Engine language service
      this.info(`Enabling View Engine language service for ${projectName}.`);
      return;
    }
    this.info(`Enabling Ivy language service for ${projectName}.`);
    this.handleCompilerOptionsDiagnostics(project);
    // Send diagnostics since we skipped this step when opening the file
    // (because language service was disabled while waiting for ngcc).
    // First, make sure the Angular project is complete.
    this.runGlobalAnalysisForNewlyLoadedProject(project);
  }