@@ -656,7 +656,8 @@ namespace ts.projectSystem {
656656                } ; 
657657
658658                const  host  =  createServerHost ( [ f1 ,  config ] ,  {  useCaseSensitiveFileNames : false  } ) ; 
659-                 const  service  =  createProjectService ( host ,  /*parameters*/  undefined ,  {  lazyConfiguredProjectsFromExternalProject } ) ; 
659+                 const  service  =  createProjectService ( host ) ; 
660+                 service . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject }  } ) ; 
660661                const  upperCaseConfigFilePath  =  combinePaths ( getDirectoryPath ( config . path ) . toUpperCase ( ) ,  getBaseFileName ( config . path ) ) ; 
661662                service . openExternalProject ( < protocol . ExternalProject > { 
662663                    projectFileName : "/a/b/project.csproj" , 
@@ -670,7 +671,7 @@ namespace ts.projectSystem {
670671                    checkProjectActualFiles ( project ,  emptyArray ) ; 
671672                } 
672673                else  { 
673-                     assert . equal ( project . pendingReload ,  ConfigFileProgramReloadLevel . None ) ;  // External project referenced configured project pending to be reloaded  
674+                     assert . equal ( project . pendingReload ,  ConfigFileProgramReloadLevel . None ) ;  // External project referenced configured project loaded  
674675                    checkProjectActualFiles ( project ,  [ upperCaseConfigFilePath ] ) ; 
675676                } 
676677
@@ -2978,7 +2979,8 @@ namespace ts.projectSystem {
29782979                } ; 
29792980                const  projectFileName  =  "/user/someuser/project/WebApplication6.csproj" ; 
29802981                const  host  =  createServerHost ( [ libFile ,  site ,  configFile ] ) ; 
2981-                 const  projectService  =  createProjectService ( host ,  /*parameters*/  undefined ,  {  lazyConfiguredProjectsFromExternalProject } ) ; 
2982+                 const  projectService  =  createProjectService ( host ) ; 
2983+                 projectService . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject }  } ) ; 
29822984
29832985                const  externalProject : protocol . ExternalProject  =  { 
29842986                    projectFileName, 
@@ -3341,8 +3343,12 @@ namespace ts.projectSystem {
33413343                } ; 
33423344
33433345                const  host  =  createServerHost ( [ file1 ,  file2 ,  tsconfig ] ) ; 
3344-                 const  session  =  createSession ( host ,   {  lazyConfiguredProjectsFromExternalProject  } ) ; 
3346+                 const  session  =  createSession ( host ) ; 
33453347                const  projectService  =  session . getProjectService ( ) ; 
3348+                 session . executeCommandSeq < protocol . ConfigureRequest > ( { 
3349+                     command : protocol . CommandTypes . Configure , 
3350+                     arguments : {  preferences : {  lazyConfiguredProjectsFromExternalProject }  } 
3351+                 } ) ; 
33463352
33473353                // Configure the deferred extension. 
33483354                const  extraFileExtensions  =  [ {  extension : ".deferred" ,  scriptKind : ScriptKind . Deferred ,  isMixedContent : true  } ] ; 
@@ -3995,7 +4001,8 @@ namespace ts.projectSystem {
39954001                    content : "" 
39964002                } ; 
39974003                const  host  =  createServerHost ( [ f1 ,  f2 ] ) ; 
3998-                 const  projectService  =  createProjectService ( host ,  /*parameters*/  undefined ,  {  lazyConfiguredProjectsFromExternalProject } ) ; 
4004+                 const  projectService  =  createProjectService ( host ) ; 
4005+                 projectService . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject }  } ) ; 
39994006
40004007                // open external project 
40014008                const  projectName  =  "/a/b/proj1" ; 
@@ -4064,7 +4071,8 @@ namespace ts.projectSystem {
40644071                    content : "{}" 
40654072                } ; 
40664073                const  host  =  createServerHost ( [ f1 ,  cLib ,  cTsconfig ,  dLib ,  dTsconfig ] ) ; 
4067-                 const  projectService  =  createProjectService ( host ,  /*parameters*/  undefined ,  {  lazyConfiguredProjectsFromExternalProject } ) ; 
4074+                 const  projectService  =  createProjectService ( host ) ; 
4075+                 projectService . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject }  } ) ; 
40684076
40694077                // open external project 
40704078                const  projectName  =  "/a/b/proj1" ; 
@@ -4233,6 +4241,47 @@ namespace ts.projectSystem {
42334241            assert . isTrue ( project . hasOpenRef ( ) ) ;  // f 
42344242            assert . isFalse ( project . isClosed ( ) ) ; 
42354243        } ) ; 
4244+ 
4245+         it ( "handles loads existing configured projects of external projects when lazyConfiguredProjectsFromExternalProject is disabled" ,  ( )  =>  { 
4246+             const  f1  =  { 
4247+                 path : "/a/b/app.ts" , 
4248+                 content : "let x = 1" 
4249+             } ; 
4250+             const  config  =  { 
4251+                 path : "/a/b/tsconfig.json" , 
4252+                 content : JSON . stringify ( { } ) 
4253+             } ; 
4254+             const  projectFileName  =  "/a/b/project.csproj" 
4255+             const  host  =  createServerHost ( [ f1 ,  config ] ) ; 
4256+             const  service  =  createProjectService ( host ) ; 
4257+             service . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject : true  }  } ) ; 
4258+             service . openExternalProject ( < protocol . ExternalProject > { 
4259+                 projectFileName, 
4260+                 rootFiles : toExternalFiles ( [ f1 . path ,  config . path ] ) , 
4261+                 options : { } 
4262+             } ) ; 
4263+             service . checkNumberOfProjects ( {  configuredProjects : 1  } ) ; 
4264+             const  project  =  service . configuredProjects . get ( config . path ) ! ; 
4265+             assert . equal ( project . pendingReload ,  ConfigFileProgramReloadLevel . Full ) ;  // External project referenced configured project pending to be reloaded 
4266+             checkProjectActualFiles ( project ,  emptyArray ) ; 
4267+ 
4268+             service . setHostConfiguration ( {  preferences : {  lazyConfiguredProjectsFromExternalProject : false  }  } ) ; 
4269+             assert . equal ( project . pendingReload ,  ConfigFileProgramReloadLevel . None ) ;  // External project referenced configured project loaded 
4270+             checkProjectActualFiles ( project ,  [ config . path ,  f1 . path ] ) ; 
4271+ 
4272+             service . closeExternalProject ( projectFileName ) ; 
4273+             service . checkNumberOfProjects ( { } ) ; 
4274+ 
4275+             service . openExternalProject ( < protocol . ExternalProject > { 
4276+                 projectFileName, 
4277+                 rootFiles : toExternalFiles ( [ f1 . path ,  config . path ] ) , 
4278+                 options : { } 
4279+             } ) ; 
4280+             service . checkNumberOfProjects ( {  configuredProjects : 1  } ) ; 
4281+             const  project2  =  service . configuredProjects . get ( config . path ) ! ; 
4282+             assert . equal ( project2 . pendingReload ,  ConfigFileProgramReloadLevel . None ) ;  // External project referenced configured project loaded 
4283+             checkProjectActualFiles ( project2 ,  [ config . path ,  f1 . path ] ) ; 
4284+         } ) ; 
42364285    } ) ; 
42374286
42384287    describe ( "tsserverProjectSystem prefer typings to js" ,  ( )  =>  { 
0 commit comments