@@ -32,7 +32,7 @@ export class ExplorerService implements IExplorerService {
3232 private static readonly EXPLORER_FILE_CHANGES_REACT_DELAY = 500 ; // delay in ms to react to file changes to give our internal events a chance to react first
3333
3434 private _onDidChangeRoots = new Emitter < void > ( ) ;
35- private _onDidChangeItem = new Emitter < ExplorerItem | undefined > ( ) ;
35+ private _onDidChangeItem = new Emitter < { item ?: ExplorerItem , recursive : boolean } > ( ) ;
3636 private _onDidChangeEditable = new Emitter < ExplorerItem > ( ) ;
3737 private _onDidSelectResource = new Emitter < { resource ?: URI , reveal ?: boolean } > ( ) ;
3838 private _onDidCopyItems = new Emitter < { items : ExplorerItem [ ] , cut : boolean , previouslyCutItems : ExplorerItem [ ] | undefined } > ( ) ;
@@ -61,7 +61,7 @@ export class ExplorerService implements IExplorerService {
6161 return this . _onDidChangeRoots . event ;
6262 }
6363
64- get onDidChangeItem ( ) : Event < ExplorerItem | undefined > {
64+ get onDidChangeItem ( ) : Event < { item ?: ExplorerItem , recursive : boolean } > {
6565 return this . _onDidChangeItem . event ;
6666 }
6767
@@ -102,7 +102,7 @@ export class ExplorerService implements IExplorerService {
102102 this . disposables . push ( this . fileService . onDidChangeFileSystemProviderRegistrations ( e => {
103103 if ( e . added && this . fileSystemProviderSchemes . has ( e . scheme ) ) {
104104 // A file system provider got re-registered, we should update all file stats since they might change (got read-only)
105- this . _onDidChangeItem . fire ( undefined ) ;
105+ this . _onDidChangeItem . fire ( { recursive : true } ) ;
106106 } else {
107107 this . fileSystemProviderSchemes . add ( e . scheme ) ;
108108 }
@@ -166,19 +166,19 @@ export class ExplorerService implements IExplorerService {
166166 // Update Input with disk Stat
167167 ExplorerItem . mergeLocalWithDisk ( modelStat , root ) ;
168168 const item = root . find ( resource ) ;
169- this . _onDidChangeItem . fire ( item ? item . parent : undefined ) ;
169+ this . _onDidChangeItem . fire ( { item : root , recursive : true } ) ;
170170
171171 // Select and Reveal
172172 this . _onDidSelectResource . fire ( { resource : item ? item . resource : undefined , reveal } ) ;
173173 } , ( ) => {
174174 root . isError = true ;
175- this . _onDidChangeItem . fire ( root ) ;
175+ this . _onDidChangeItem . fire ( { item : root , recursive : false } ) ;
176176 } ) ;
177177 }
178178
179179 refresh ( ) : void {
180180 this . model . roots . forEach ( r => r . forgetChildren ( ) ) ;
181- this . _onDidChangeItem . fire ( undefined ) ;
181+ this . _onDidChangeItem . fire ( { recursive : true } ) ;
182182 const resource = this . editorService . activeEditor ? this . editorService . activeEditor . getResource ( ) : undefined ;
183183 if ( resource ) {
184184 // We did a top level refresh, reveal the active file #67118
@@ -213,7 +213,7 @@ export class ExplorerService implements IExplorerService {
213213 p . removeChild ( childElement ) ;
214214 p . addChild ( childElement ) ;
215215 // Refresh the Parent (View)
216- this . _onDidChangeItem . fire ( p ) ;
216+ this . _onDidChangeItem . fire ( { item : p , recursive : false } ) ;
217217 } ) ;
218218 } ) ;
219219 }
@@ -232,7 +232,7 @@ export class ExplorerService implements IExplorerService {
232232 modelElements . forEach ( modelElement => {
233233 // Rename File (Model)
234234 modelElement . rename ( newElement ) ;
235- this . _onDidChangeItem . fire ( modelElement . parent ) ;
235+ this . _onDidChangeItem . fire ( { item : modelElement . parent , recursive : false } ) ;
236236 } ) ;
237237 }
238238
@@ -246,8 +246,8 @@ export class ExplorerService implements IExplorerService {
246246 modelElements . forEach ( ( modelElement , index ) => {
247247 const oldParent = modelElement . parent ;
248248 modelElement . move ( newParents [ index ] ) ;
249- this . _onDidChangeItem . fire ( oldParent ) ;
250- this . _onDidChangeItem . fire ( newParents [ index ] ) ;
249+ this . _onDidChangeItem . fire ( { item : oldParent , recursive : false } ) ;
250+ this . _onDidChangeItem . fire ( { item : newParents [ index ] , recursive : false } ) ;
251251 } ) ;
252252 }
253253 }
@@ -262,7 +262,7 @@ export class ExplorerService implements IExplorerService {
262262 // Remove Element from Parent (Model)
263263 parent . removeChild ( element ) ;
264264 // Refresh Parent (View)
265- this . _onDidChangeItem . fire ( parent ) ;
265+ this . _onDidChangeItem . fire ( { item : parent , recursive : false } ) ;
266266 }
267267 } ) ;
268268 }
@@ -340,7 +340,7 @@ export class ExplorerService implements IExplorerService {
340340
341341 if ( shouldRefresh ( ) ) {
342342 this . roots . forEach ( r => r . forgetChildren ( ) ) ;
343- this . _onDidChangeItem . fire ( undefined ) ;
343+ this . _onDidChangeItem . fire ( { recursive : true } ) ;
344344 }
345345 } , ExplorerService . EXPLORER_FILE_CHANGES_REACT_DELAY ) ;
346346 }
0 commit comments