forked from simonmclean/triptych.nvim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmappings.lua
67 lines (60 loc) · 2.23 KB
/
mappings.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
local view = require 'triptych.view'
local Mappings = {}
---@param State TriptychState
---@param actions unknown
---@param refresh_fn fun(): nil
function Mappings.new(State, actions, refresh_fn)
local vim = _G.triptych_mock_vim or vim
local mappings = vim.g.triptych_config.mappings
local extension_mappings = vim.g.triptych_config.extension_mappings
---@param mode string
---@param key_or_keys string | string[]
---@param fn fun(): nil
local function map(mode, key_or_keys, fn)
if type(key_or_keys) == 'string' then
vim.keymap.set(mode, key_or_keys, fn, { buffer = 0, nowait = true })
else
for _, key in pairs(key_or_keys) do
vim.keymap.set(mode, key, fn, { buffer = 0, nowait = true })
end
end
end
-----------------------------------------
-- Mappings for built-in functionality --
-----------------------------------------
map('n', mappings.nav_left, actions.nav_left)
map('n', mappings.nav_right, actions.nav_right)
map('n', mappings.open_tab, actions.open_tab)
map('n', mappings.open_hsplit, actions.open_hsplit)
map('n', mappings.open_vsplit, actions.open_vsplit)
map('n', mappings.cd, actions.cd)
map('n', mappings.jump_to_cwd, actions.jump_to_cwd)
map('n', mappings.delete, actions.delete)
map('v', mappings.delete, actions.bulk_delete)
map('n', mappings.add, actions.add_file_or_dir)
map('n', mappings.copy, actions.toggle_copy)
map('v', mappings.copy, actions.bulk_toggle_copy)
map('n', mappings.rename, actions.rename)
map('n', mappings.cut, actions.toggle_cut)
map('v', mappings.cut, actions.bulk_toggle_cut)
map('n', mappings.paste, actions.paste)
map('n', mappings.show_help, actions.help)
map('n', mappings.toggle_hidden, actions.toggle_hidden)
map('n', mappings.quit, function()
vim.g.triptych_close() -- TODO: Move to actions
end)
map('v', mappings.quit, function()
vim.g.triptych_close()
end)
-----------------------------------------
----------- Extension mappings ----------
-----------------------------------------
for key, ext_mapping in pairs(extension_mappings) do
map(ext_mapping.mode, key, function()
ext_mapping.fn(view.get_target_under_cursor(State), refresh_fn)
end)
end
end
return {
new = Mappings.new,
}