@@ -4,16 +4,31 @@ local vim = vim
44local Input = require (" nui.input" )
55local event = require (" nui.utils.autocmd" ).event
66local fs = require (" neo-tree.sources.filesystem" )
7- local inputs = require (" neo-tree.ui.inputs" )
87local popups = require (" neo-tree.ui.popups" )
98local renderer = require (" neo-tree.ui.renderer" )
109local utils = require (" neo-tree.utils" )
1110local log = require (" neo-tree.log" )
1211local manager = require (" neo-tree.sources.manager" )
13- local renderer = require (" neo-tree.ui.renderer" )
1412
1513local M = {}
1614
15+ local cmds = {
16+ move_cursor_down = function (state , scroll_padding )
17+ renderer .focus_node (state , nil , true , 1 , scroll_padding )
18+ end ,
19+
20+ move_cursor_up = function (state , scroll_padding )
21+ renderer .focus_node (state , nil , true , - 1 , scroll_padding )
22+ vim .cmd (" redraw!" )
23+ end ,
24+ }
25+
26+ local function create_input_mapping_handle (cmd , state , scroll_padding )
27+ return function ()
28+ cmd (state , scroll_padding )
29+ end
30+ end
31+
1732M .show_filter = function (state , search_as_you_type , fuzzy_finder_mode , use_fzy )
1833 local popup_options
1934 local winid = vim .api .nvim_get_current_win ()
@@ -203,17 +218,15 @@ M.show_filter = function(state, search_as_you_type, fuzzy_finder_mode, use_fzy)
203218 end , { once = true })
204219
205220 if fuzzy_finder_mode then
206- local move_cursor_down = function ()
207- renderer .focus_node (state , nil , true , 1 , scroll_padding )
208- end
209- local move_cursor_up = function ()
210- renderer .focus_node (state , nil , true , - 1 , scroll_padding )
211- vim .cmd (" redraw!" )
221+ local config = require (" neo-tree" ).config
222+ for lhs , cmd_name in pairs (config .filesystem .window .fuzzy_finder_mappings ) do
223+ local cmd = cmds [cmd_name ]
224+ if cmd then
225+ input :map (" i" , lhs , create_input_mapping_handle (cmd , state , scroll_padding ), { noremap = true })
226+ else
227+ log .warn (string.format (' Invalid command in fuzzy_finder_mappings: %s = %s' , lhs , cmd_name ))
228+ end
212229 end
213- input :map (" i" , " <down>" , move_cursor_down , { noremap = true })
214- input :map (" i" , " <C-n>" , move_cursor_down , { noremap = true })
215- input :map (" i" , " <up>" , move_cursor_up , { noremap = true })
216- input :map (" i" , " <C-p>" , move_cursor_up , { noremap = true })
217230 end
218231end
219232
0 commit comments