@@ -395,75 +395,71 @@ function M.setup(opts)
395
395
log .raw (" config" , " %s\n " , vim .inspect (M .mappings ))
396
396
end
397
397
398
- local LEGACY_TO_ON_ATTACH = {
399
- edit = { inject = true , fn = " Api.node.open.edit" } ,
400
- edit_in_place = { inject = true , fn = " Api.node.open.replace_tree_buffer" } ,
401
- edit_no_picker = { inject = true , fn = " Api.node.open.no_window_picker" } ,
402
- cd = { inject = true , fn = " Api.tree.change_root_to_node" } ,
403
- vsplit = { inject = true , fn = " Api.node.open.vertical" } ,
404
- split = { inject = true , fn = " Api.node.open.horizontal" } ,
405
- tabnew = { inject = true , fn = " Api.node.open.tab" } ,
406
- prev_sibling = { inject = true , fn = " Api.node.navigate.sibling.prev" } ,
407
- next_sibling = { inject = true , fn = " Api.node.navigate.sibling.next" } ,
408
- parent_node = { inject = true , fn = " Api.node.navigate.parent" } ,
409
- close_node = { inject = true , fn = " Api.node.navigate.parent_close" } ,
410
- preview = { inject = true , fn = " Api.node.open.preview" } ,
411
- first_sibling = { inject = true , fn = " Api.node.navigate.sibling.first" } ,
412
- last_sibling = { inject = true , fn = " Api.node.navigate.sibling.last" } ,
413
- toggle_git_ignored = { inject = false , fn = " Api.tree.toggle_gitignore_filter" } ,
414
- toggle_dotfiles = { inject = false , fn = " Api.tree.toggle_hidden_filter" } ,
415
- toggle_custom = { inject = false , fn = " Api.tree.toggle_custom_filter" } ,
416
- refresh = { inject = true , fn = " Api.tree.reload" } ,
417
- create = { inject = true , fn = " Api.fs.create" } ,
418
- remove = { inject = true , fn = " Api.fs.remove" } ,
419
- trash = { inject = true , fn = " Api.fs.trash" } ,
420
- rename = { inject = true , fn = " Api.fs.rename" } ,
421
- full_rename = { inject = true , fn = " Api.fs.rename_sub" } ,
422
- cut = { inject = true , fn = " Api.fs.cut" } ,
423
- copy = { inject = true , fn = " Api.fs.copy.node" } ,
424
- paste = { inject = true , fn = " Api.fs.paste" } ,
425
- copy_name = { inject = true , fn = " Api.fs.copy.filename" } ,
426
- copy_path = { inject = true , fn = " Api.fs.copy.relative_path" } ,
427
- copy_absolute_path = { inject = true , fn = " Api.fs.copy.absolute_path" } ,
428
- prev_diag_item = { inject = true , fn = " Api.node.navigate.diagnostics.next" } ,
429
- prev_git_item = { inject = true , fn = " Api.node.navigate.git.next" } ,
430
- next_diag_item = { inject = true , fn = " Api.node.navigate.diagnostics.prev" } ,
431
- next_git_item = { inject = true , fn = " Api.node.navigate.git.prev" } ,
432
- dir_up = { inject = true , fn = " Api.tree.change_root_to_parent" } ,
433
- system_open = { inject = true , fn = " Api.node.run.system" } ,
434
- live_filter = { inject = false , fn = " Api.live_filter.start" } ,
435
- clear_live_filter = { inject = false , fn = " Api.live_filter.clear" } ,
436
- close = { inject = true , fn = " Api.tree.close" } ,
437
- collapse_all = { inject = false , fn = " Api.tree.collapse_all" } ,
438
- expand_all = { inject = true , fn = " Api.tree.expand_all" } ,
439
- search_node = { inject = false , fn = " Api.tree.search_node" } ,
440
- run_file_command = { inject = true , fn = " Api.node.run.cmd" } ,
441
- toggle_file_info = { inject = true , fn = " Api.node.show_info_popup" } ,
442
- toggle_help = { inject = false , fn = " Api.tree.toggle_help" } ,
443
- toggle_mark = { inject = true , fn = " Api.marks.toggle" } ,
444
- bulk_move = { inject = false , fn = " Api.marks.bulk.move" } ,
398
+ local ACTION_TO_API = {
399
+ edit = " Api.node.open.edit" ,
400
+ edit_in_place = " Api.node.open.replace_tree_buffer" ,
401
+ edit_no_picker = " Api.node.open.no_window_picker" ,
402
+ cd = " Api.tree.change_root_to_node" ,
403
+ vsplit = " Api.node.open.vertical" ,
404
+ split = " Api.node.open.horizontal" ,
405
+ tabnew = " Api.node.open.tab" ,
406
+ prev_sibling = " Api.node.navigate.sibling.prev" ,
407
+ next_sibling = " Api.node.navigate.sibling.next" ,
408
+ parent_node = " Api.node.navigate.parent" ,
409
+ close_node = " Api.node.navigate.parent_close" ,
410
+ preview = " Api.node.open.preview" ,
411
+ first_sibling = " Api.node.navigate.sibling.first" ,
412
+ last_sibling = " Api.node.navigate.sibling.last" ,
413
+ toggle_git_ignored = " Api.tree.toggle_gitignore_filter" ,
414
+ toggle_dotfiles = " Api.tree.toggle_hidden_filter" ,
415
+ toggle_custom = " Api.tree.toggle_custom_filter" ,
416
+ refresh = " Api.tree.reload" ,
417
+ create = " Api.fs.create" ,
418
+ remove = " Api.fs.remove" ,
419
+ trash = " Api.fs.trash" ,
420
+ rename = " Api.fs.rename" ,
421
+ full_rename = " Api.fs.rename_sub" ,
422
+ cut = " Api.fs.cut" ,
423
+ copy = " Api.fs.copy.node" ,
424
+ paste = " Api.fs.paste" ,
425
+ copy_name = " Api.fs.copy.filename" ,
426
+ copy_path = " Api.fs.copy.relative_path" ,
427
+ copy_absolute_path = " Api.fs.copy.absolute_path" ,
428
+ prev_diag_item = " Api.node.navigate.diagnostics.next" ,
429
+ prev_git_item = " Api.node.navigate.git.next" ,
430
+ next_diag_item = " Api.node.navigate.diagnostics.prev" ,
431
+ next_git_item = " Api.node.navigate.git.prev" ,
432
+ dir_up = " Api.tree.change_root_to_parent" ,
433
+ system_open = " Api.node.run.system" ,
434
+ live_filter = " Api.live_filter.start" ,
435
+ clear_live_filter = " Api.live_filter.clear" ,
436
+ close = " Api.tree.close" ,
437
+ collapse_all = " Api.tree.collapse_all" ,
438
+ expand_all = " Api.tree.expand_all" ,
439
+ search_node = " Api.tree.search_node" ,
440
+ run_file_command = " Api.node.run.cmd" ,
441
+ toggle_file_info = " Api.node.show_info_popup" ,
442
+ toggle_help = " Api.tree.toggle_help" ,
443
+ toggle_mark = " Api.marks.toggle" ,
444
+ bulk_move = " Api.marks.bulk.move" ,
445
445
}
446
446
447
- function M .create_on_attach ()
447
+ function M .mappings_to_on_attach ()
448
448
local keymaps = {}
449
449
local max_key = 0
450
+ local max_fn = 0
450
451
451
452
for _ , m in ipairs (M .mappings ) do
452
- if LEGACY_TO_ON_ATTACH [m .action ] then
453
- if type (m .key ) == " table" then
454
- for _ , k in ipairs (m .key ) do
455
- table.insert (keymaps , {
456
- key = k ,
457
- action = LEGACY_TO_ON_ATTACH [m .action ],
458
- })
459
- max_key = math.max (# k , max_key )
460
- end
461
- else
453
+ if ACTION_TO_API [m .action ] then
454
+ local keys = type (m .key ) == " table" and m .key or { m .key }
455
+ for _ , k in ipairs (keys ) do
456
+ local fn = ACTION_TO_API [m .action ]
462
457
table.insert (keymaps , {
463
- key = m . key ,
464
- action = LEGACY_TO_ON_ATTACH [ m . action ] ,
458
+ key = k ,
459
+ fn = fn ,
465
460
})
466
- max_key = math.max (# m .key , max_key )
461
+ max_key = math.max (# k , max_key )
462
+ max_fn = math.max (# fn , max_fn )
467
463
end
468
464
end
469
465
end
@@ -472,28 +468,14 @@ function M.create_on_attach()
472
468
local Api = require("nvim-tree.api")
473
469
474
470
local function on_attach(bufnr)
475
- local function map(key, fn)
476
- vim.keymap.set("n", key, function()
477
- fn()
478
- end, { buffer = bufnr, noremap = true })
479
- end
480
-
481
- local function map_inject_node(key, fn)
482
- vim.keymap.set("n", key, function(node)
483
- fn(node)
484
- end, { buffer = bufnr, noremap = true })
485
- end
471
+ local opts = { buffer = bufnr, noremap = true, silent = true, nowait = true, }
486
472
487
473
]]
488
474
489
- local fmt_inject = string.format ( " %%s map_inject_node(%%-%d.%ds %%s) \n " , max_key + 3 , max_key + 3 )
490
- local fmt_no_inject = string.format (" %%s map ( %%-%d.%ds %%s )\n " , max_key + 3 , max_key + 3 )
475
+ local fmt =
476
+ string.format (" %%s vim.keymap.set('n', %%-%d.%ds %%-%d.%ds, opts )\n " , max_key + 3 , max_key + 3 , max_fn , max_fn )
491
477
for _ , m in ipairs (keymaps ) do
492
- if m .action .inject then
493
- out = string.format (fmt_inject , out , " '" .. m .key .. " '," , m .action .fn )
494
- else
495
- out = string.format (fmt_no_inject , out , " '" .. m .key .. " '," , m .action .fn )
496
- end
478
+ out = string.format (fmt , out , " '" .. m .key .. " '," , m .fn )
497
479
end
498
480
out = out .. [[
499
481
end
0 commit comments