@@ -396,43 +396,47 @@ M.merge_config = function(user_config, is_auto_config)
396
396
397
397
highlights .setup ()
398
398
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
-
404
399
-- used to either limit the sources that or loaded, or add extra external sources
405
400
local all_sources = {}
406
401
local all_source_names = {}
407
402
for _ , source in ipairs (user_config .sources or default_config .sources ) do
408
403
local parts = utils .split (source , " ." )
409
404
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
414
409
-- 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
418
422
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
427
425
end
428
426
end
429
427
if name then
428
+ default_config [name ] = module .default_config or default_config [name ]
430
429
table.insert (all_source_names , name )
431
430
end
432
431
end
433
432
log .debug (" Sources to load: " , vim .inspect (all_sources ))
434
433
require (" neo-tree.command.parser" ).setup (all_source_names )
435
434
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
+
436
440
for source_name , mod_root in pairs (all_sources ) do
437
441
local module = require (mod_root )
438
442
default_config [source_name ] = default_config [source_name ]
0 commit comments