@@ -4953,18 +4953,23 @@ namespace ts.projectSystem {
4953
4953
}
4954
4954
4955
4955
function verifyProjectChangedEvent ( filesToEmit : FileOrFolder [ ] , filesToReload ?: FileOrFolder [ ] , additionalChangedFiles ?: FileOrFolder [ ] ) {
4956
- const changedFiles = mapDefined ( additionalChangedFiles ? filesToEmit . concat ( additionalChangedFiles ) : filesToEmit , f => f !== configFile ? f . path : undefined ) ;
4957
4956
host . reloadFS ( filesToReload || files ) ;
4958
4957
host . runQueuedTimeoutCallbacks ( ) ;
4959
- const project = projectService . configuredProjects . get ( configFile . path ) ;
4960
- verifyProjectChangedEventHandler ( [ {
4961
- eventName : server . ProjectChangedEvent ,
4962
- data : {
4963
- project,
4964
- changedFiles,
4965
- filesToEmit : mapDefined ( filesToEmit , f => f !== libFile && f !== configFile ? f . path : undefined )
4966
- }
4967
- } ] ) ;
4958
+ if ( filesToEmit . length ) {
4959
+ const project = projectService . configuredProjects . get ( configFile . path ) ;
4960
+ const changedFiles = mapDefined ( additionalChangedFiles ? filesToEmit . concat ( additionalChangedFiles ) : filesToEmit , f => f !== configFile ? f . path : undefined ) ;
4961
+ verifyProjectChangedEventHandler ( [ {
4962
+ eventName : server . ProjectChangedEvent ,
4963
+ data : {
4964
+ project,
4965
+ changedFiles,
4966
+ filesToEmit : mapDefined ( filesToEmit , f => f !== libFile && f !== configFile ? f . path : undefined )
4967
+ }
4968
+ } ] ) ;
4969
+ }
4970
+ else {
4971
+ verifyProjectChangedEventHandler ( [ ] ) ;
4972
+ }
4968
4973
}
4969
4974
4970
4975
function updateContentOfOpenFile ( file : FileOrFolder , newContent : string ) {
@@ -5000,15 +5005,15 @@ namespace ts.projectSystem {
5000
5005
5001
5006
// Change file1Consumer1 content to `export let y = Foo();`
5002
5007
updateContentOfOpenFile ( file1Consumer1 , "export let y = Foo();" ) ;
5003
- verifyProjectChangedEvent ( [ file1Consumer1 ] ) ;
5008
+ verifyProjectChangedEvent ( [ ] ) ;
5004
5009
5005
5010
// Change the content of moduleFile1 to `export var T: number;export function Foo() { };`
5006
5011
moduleFile1 . content = `export var T: number;export function Foo() { };` ;
5007
- verifyProjectChangedEvent ( [ moduleFile1 , file1Consumer2 ] ) ;
5012
+ verifyProjectChangedEvent ( [ moduleFile1 , file1Consumer2 , file1Consumer1 ] ) ;
5008
5013
5009
5014
// Add the import statements back to file1Consumer1
5010
5015
updateContentOfOpenFile ( file1Consumer1 , `import {Foo} from "./moduleFile1";let y = Foo();` ) ;
5011
- verifyProjectChangedEvent ( [ file1Consumer1 ] ) ;
5016
+ verifyProjectChangedEvent ( [ ] ) ;
5012
5017
5013
5018
// Change the content of moduleFile1 to `export var T: number;export var T2: string;export function Foo() { };`
5014
5019
moduleFile1 . content = `export var T: number;export var T2: string;export function Foo() { };` ;
@@ -5095,11 +5100,11 @@ namespace ts.projectSystem {
5095
5100
} ) ;
5096
5101
5097
5102
updateContentOfOpenFile ( file1Consumer1 , file1Consumer1 . content + "export var T: number;" ) ;
5098
- verifyProjectChangedEvent ( [ file1Consumer1 , file1Consumer1Consumer1 ] ) ;
5103
+ verifyProjectChangedEvent ( [ ] ) ;
5099
5104
5100
5105
// Doesnt change the shape of file1Consumer1
5101
5106
moduleFile1 . content = `export var T: number;export function Foo() { };` ;
5102
- verifyProjectChangedEvent ( [ moduleFile1 , file1Consumer1 , file1Consumer2 ] ) ;
5107
+ verifyProjectChangedEvent ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , file1Consumer1Consumer1 ] ) ;
5103
5108
5104
5109
// Change both files before the timeout
5105
5110
updateContentOfOpenFile ( file1Consumer1 , file1Consumer1 . content + "export var T2: number;" ) ;
@@ -5120,12 +5125,12 @@ namespace ts.projectSystem {
5120
5125
/// <reference path="./file1.ts" />
5121
5126
export var t2 = 10;`
5122
5127
} ;
5123
- const { configFile, verifyProjectChangedEvent, updateContentOfOpenFile } = getInitialState ( {
5128
+ const { configFile, verifyProjectChangedEvent } = getInitialState ( {
5124
5129
getAdditionalFileOrFolder : ( ) => [ file1 , file2 ] ,
5125
5130
firstReloadFileList : [ file1 . path , libFile . path , file2 . path , configFilePath ]
5126
5131
} ) ;
5127
5132
5128
- updateContentOfOpenFile ( file1 , file1 . content + "export var t3 = 10;" ) ;
5133
+ file2 . content += "export var t3 = 10;" ;
5129
5134
verifyProjectChangedEvent ( [ file1 , file2 ] , [ file1 , file2 , libFile , configFile ] ) ;
5130
5135
} ) ;
5131
5136
@@ -5157,7 +5162,7 @@ namespace ts.projectSystem {
5157
5162
} ) ;
5158
5163
5159
5164
updateContentOfOpenFile ( referenceFile1 , referenceFile1 . content + "export var yy = Foo();" ) ;
5160
- verifyProjectChangedEvent ( [ referenceFile1 ] , [ libFile , referenceFile1 , configFile ] ) ;
5165
+ verifyProjectChangedEvent ( [ ] , [ libFile , referenceFile1 , configFile ] ) ;
5161
5166
5162
5167
// Create module File2 and see both files are saved
5163
5168
verifyProjectChangedEvent ( [ referenceFile1 , moduleFile2 ] , [ libFile , moduleFile2 , referenceFile1 , configFile ] ) ;
0 commit comments