@@ -280,39 +280,40 @@ impl ConfigDb {
280
280
}
281
281
}
282
282
283
+ for ( file_id, parent) in parent_changes {
284
+ self . ensure_node ( file_id) ;
285
+ let parent_node_id = match parent {
286
+ ConfigParent :: Parent ( parent_file_id) => {
287
+ self . ensure_node ( parent_file_id) ;
288
+ parent_file_id
289
+ }
290
+ ConfigParent :: UserDefault if file_id == self . xdg_config_file_id => continue ,
291
+ ConfigParent :: UserDefault => self . xdg_config_file_id ,
292
+ } ;
293
+ self . set_parent ( file_id, Some ( parent_node_id) )
294
+ }
295
+
283
296
for change in ra_toml_changes {
297
+ if !self . known_file_ids . contains ( & change. file_id ) {
298
+ // Irrelevant Vfs change. Ideally you would not pass these in at all, but it's not
299
+ // a problem to filter them out here.
300
+ continue ;
301
+ }
284
302
// turn and face the strain
285
303
match change. change_kind {
286
304
vfs:: ChangeKind :: Create | vfs:: ChangeKind :: Modify => {
287
305
let input = parse_toml ( change. file_id , vfs, & mut scratch_errors, & mut errors)
288
306
. map ( PointerCmp ) ;
289
307
tracing:: trace!( "updating toml for {:?} to {:?}" , change. file_id, input) ;
290
308
291
- self . ensure_node ( change. file_id ) ;
292
309
self . set_config_input ( change. file_id , input) ;
293
310
}
294
311
vfs:: ChangeKind :: Delete => {
295
- self . ensure_node ( change. file_id ) ;
296
312
self . set_config_input ( change. file_id , None ) ;
297
313
}
298
314
}
299
315
}
300
316
301
- for ( file_id, parent) in parent_changes {
302
- self . ensure_node ( file_id) ;
303
- let parent_node_id = match parent {
304
- ConfigParent :: Parent ( parent_file_id) => {
305
- self . ensure_node ( parent_file_id) ;
306
- parent_file_id
307
- }
308
- ConfigParent :: UserDefault if file_id == self . xdg_config_file_id => continue ,
309
- ConfigParent :: UserDefault => self . xdg_config_file_id ,
310
- } ;
311
- // order of children within the parent node does not matter
312
- tracing:: trace!( "appending child {file_id:?} to {parent_node_id:?}" ) ;
313
- self . set_parent ( file_id, Some ( parent_node_id) )
314
- }
315
-
316
317
errors
317
318
}
318
319
0 commit comments