@@ -396,43 +396,47 @@ M.merge_config = function(user_config, is_auto_config)
396396
397397 highlights .setup ()
398398
399- -- setup the default values for all sources
400- normalize_mappings (default_config )
401- normalize_mappings (user_config )
402- merge_renderers (default_config , nil , user_config )
403-
404399 -- used to either limit the sources that or loaded, or add extra external sources
405400 local all_sources = {}
406401 local all_source_names = {}
407402 for _ , source in ipairs (user_config .sources or default_config .sources ) do
408403 local parts = utils .split (source , " ." )
409404 local name = parts [# parts ]
410- if # parts > 1 then
411- -- fully qualified module name
412- all_sources [ name ] = source
413- else
405+ local is_internal_ns , is_external_ns = false , false
406+ local module
407+
408+ if # parts == 1 then
414409 -- might be a module name in the internal namespace
415- local is_internal_ns , _ = pcall (require , " neo-tree.sources." .. source )
416- if is_internal_ns then
417- all_sources [name ] = " neo-tree.sources." .. name
410+ is_internal_ns , module = pcall (require , " neo-tree.sources." .. source )
411+ end
412+ if is_internal_ns then
413+ name = module .name or name
414+ all_sources [name ] = " neo-tree.sources." .. name
415+ else
416+ -- fully qualified module name
417+ -- or just a root level module name
418+ is_external_ns , module = pcall (require , source )
419+ if is_external_ns then
420+ name = module .name or name
421+ all_sources [name ] = source
418422 else
419- -- could also be a root level module name
420- local exists , module = pcall (require , source )
421- if exists then
422- all_sources [name ] = module .name or source
423- else
424- log .error (" Source module not found" , source )
425- name = nil
426- end
423+ log .error (" Source module not found" , source )
424+ name = nil
427425 end
428426 end
429427 if name then
428+ default_config [name ] = module .default_config or default_config [name ]
430429 table.insert (all_source_names , name )
431430 end
432431 end
433432 log .debug (" Sources to load: " , vim .inspect (all_sources ))
434433 require (" neo-tree.command.parser" ).setup (all_source_names )
435434
435+ -- setup the default values for all sources
436+ normalize_mappings (default_config )
437+ normalize_mappings (user_config )
438+ merge_renderers (default_config , nil , user_config )
439+
436440 for source_name , mod_root in pairs (all_sources ) do
437441 local module = require (mod_root )
438442 default_config [source_name ] = default_config [source_name ]
0 commit comments