feat: adds M mapping in normal mode (#544)

This commit is contained in:
Hubert Pelczarski
2021-02-24 03:35:52 +01:00
committed by GitHub
parent 10627e889e
commit 67b0661537
4 changed files with 18 additions and 1 deletions

View File

@@ -78,6 +78,11 @@ function actions.move_to_top(prompt_bufnr)
)) ))
end end
function actions.move_to_middle(prompt_bufnr)
local current_picker = actions.get_current_picker(prompt_bufnr)
current_picker:set_selection(p_scroller.middle(nil, current_picker.max_results, nil))
end
function actions.move_to_bottom(prompt_bufnr) function actions.move_to_bottom(prompt_bufnr)
local current_picker = actions.get_current_picker(prompt_bufnr) local current_picker = actions.get_current_picker(prompt_bufnr)
current_picker:set_selection(p_scroller.bottom(current_picker.sorting_strategy, current_picker:set_selection(p_scroller.bottom(current_picker.sorting_strategy,

View File

@@ -39,6 +39,7 @@ mappings.default_mappings = config.values.default_mappings or {
["j"] = actions.move_selection_next, ["j"] = actions.move_selection_next,
["k"] = actions.move_selection_previous, ["k"] = actions.move_selection_previous,
["H"] = actions.move_to_top, ["H"] = actions.move_to_top,
["M"] = actions.move_to_middle,
["L"] = actions.move_to_bottom, ["L"] = actions.move_to_bottom,
["<Down>"] = actions.move_selection_next, ["<Down>"] = actions.move_selection_next,

View File

@@ -80,6 +80,10 @@ scroller.top = function(sorting_strategy, max_results, num_results)
return (num_results > max_results) and 0 or (max_results - num_results) return (num_results > max_results) and 0 or (max_results - num_results)
end end
scroller.middle = function(sorting_strategy, max_results, num_results)
return math.floor(max_results/2)
end
scroller.bottom = function(sorting_strategy, max_results, num_results) scroller.bottom = function(sorting_strategy, max_results, num_results)
if sorting_strategy == 'ascending' then if sorting_strategy == 'ascending' then
return math.min(max_results, num_results) - 1 return math.min(max_results, num_results) - 1

View File

@@ -112,7 +112,14 @@ describe('scroller', function()
end) end)
end) end)
describe('should give top and bottom index', function()
describe('should give top, middle and bottom index', function()
it('should handle middle index', function()
eq(5, p_scroller.middle(nil, 11, nil))
eq(10, p_scroller.middle(nil, 20, nil))
eq(12, p_scroller.middle(nil, 25, nil))
end)
it('should handle ascending', function() it('should handle ascending', function()
eq(0, p_scroller.top('ascending', 20, 1000)) eq(0, p_scroller.top('ascending', 20, 1000))
eq(19, p_scroller.bottom('ascending', 20, 1000)) eq(19, p_scroller.bottom('ascending', 20, 1000))