@@ -126,11 +126,13 @@ namespace ts.server {
126126 private cachedUnresolvedImportsPerFile = new UnresolvedImportsMap ( ) ;
127127 private lastCachedUnresolvedImportsList : SortedReadonlyArray < string > ;
128128
129+ /*@internal */
130+ private lastFileExceededProgramSize : string | undefined ;
131+
129132 // wrapper over the real language service that will suppress all semantic operations
130133 protected languageService : LanguageService ;
131134
132135 public languageServiceEnabled = true ;
133- public exceededFilename : string | undefined ;
134136
135137 readonly trace ?: ( s : string ) => void ;
136138 readonly realpath ?: ( path : string ) => string ;
@@ -213,7 +215,7 @@ namespace ts.server {
213215 readonly projectService : ProjectService ,
214216 private documentRegistry : DocumentRegistry ,
215217 hasExplicitListOfFiles : boolean ,
216- exceededFilename : string | undefined ,
218+ lastFileExceededProgramSize : string | undefined ,
217219 private compilerOptions : CompilerOptions ,
218220 public compileOnSaveEnabled : boolean ,
219221 directoryStructureHost : DirectoryStructureHost ,
@@ -245,8 +247,8 @@ namespace ts.server {
245247 // Use the current directory as resolution root only if the project created using current directory string
246248 this . resolutionCache = createResolutionCache ( this , currentDirectory && this . currentDirectory , /*logChangesWhenResolvingModule*/ true ) ;
247249 this . languageService = createLanguageService ( this , this . documentRegistry ) ;
248- if ( exceededFilename ) {
249- this . disableLanguageService ( exceededFilename ) ;
250+ if ( lastFileExceededProgramSize ) {
251+ this . disableLanguageService ( lastFileExceededProgramSize ) ;
250252 }
251253 this . markAsDirty ( ) ;
252254 }
@@ -498,16 +500,17 @@ namespace ts.server {
498500 return ;
499501 }
500502 this . languageServiceEnabled = true ;
503+ this . lastFileExceededProgramSize = undefined ;
501504 this . projectService . onUpdateLanguageServiceStateForProject ( this , /*languageServiceEnabled*/ true ) ;
502505 }
503506
504- disableLanguageService ( exceededFilename : string ) {
507+ disableLanguageService ( lastFileExceededProgramSize ? : string ) {
505508 if ( ! this . languageServiceEnabled ) {
506509 return ;
507510 }
508511 this . languageService . cleanupSemanticCache ( ) ;
509512 this . languageServiceEnabled = false ;
510- this . exceededFilename = exceededFilename ;
513+ this . lastFileExceededProgramSize = lastFileExceededProgramSize ;
511514 this . builderState = undefined ;
512515 this . resolutionCache . closeTypeRootsWatch ( ) ;
513516 this . projectService . onUpdateLanguageServiceStateForProject ( this , /*languageServiceEnabled*/ false ) ;
@@ -1000,7 +1003,8 @@ namespace ts.server {
10001003 version : this . projectStructureVersion ,
10011004 isInferred : this . projectKind === ProjectKind . Inferred ,
10021005 options : this . getCompilationSettings ( ) ,
1003- exceededFilename : this . exceededFilename
1006+ languageServiceDisabled : ! this . languageServiceEnabled ,
1007+ lastFileExceededProgramSize : this . lastFileExceededProgramSize
10041008 } ;
10051009 const updatedFileNames = this . updatedFileNames ;
10061010 this . updatedFileNames = undefined ;
@@ -1184,7 +1188,7 @@ namespace ts.server {
11841188 projectService ,
11851189 documentRegistry ,
11861190 /*files*/ undefined ,
1187- /*exceededFileName */ undefined ,
1191+ /*lastFileExceededProgramSize */ undefined ,
11881192 compilerOptions ,
11891193 /*compileOnSaveEnabled*/ false ,
11901194 projectService . host ,
@@ -1263,15 +1267,15 @@ namespace ts.server {
12631267 documentRegistry : DocumentRegistry ,
12641268 hasExplicitListOfFiles : boolean ,
12651269 compilerOptions : CompilerOptions ,
1266- exceededFilename : string | undefined ,
1270+ lastFileExceededProgramSize : string | undefined ,
12671271 public compileOnSaveEnabled : boolean ,
12681272 cachedDirectoryStructureHost : CachedDirectoryStructureHost ) {
12691273 super ( configFileName ,
12701274 ProjectKind . Configured ,
12711275 projectService ,
12721276 documentRegistry ,
12731277 hasExplicitListOfFiles ,
1274- exceededFilename ,
1278+ lastFileExceededProgramSize ,
12751279 compilerOptions ,
12761280 compileOnSaveEnabled ,
12771281 cachedDirectoryStructureHost ,
@@ -1458,15 +1462,15 @@ namespace ts.server {
14581462 projectService : ProjectService ,
14591463 documentRegistry : DocumentRegistry ,
14601464 compilerOptions : CompilerOptions ,
1461- exceededFilename : string | undefined ,
1465+ lastFileExceededProgramSize : string | undefined ,
14621466 public compileOnSaveEnabled : boolean ,
14631467 projectFilePath ?: string ) {
14641468 super ( externalProjectName ,
14651469 ProjectKind . External ,
14661470 projectService ,
14671471 documentRegistry ,
14681472 /*hasExplicitListOfFiles*/ true ,
1469- exceededFilename ,
1473+ lastFileExceededProgramSize ,
14701474 compilerOptions ,
14711475 compileOnSaveEnabled ,
14721476 projectService . host ,
0 commit comments