tangled
alpha
login
or
join now
robinwobin.dev
/
artio.nvim
3
fork
atom
minimal extui fuzzy finder for neovim
3
fork
atom
overview
issues
pulls
pipelines
feat(builtins): add keymap builtin
robinwobin.dev
3 months ago
53688b0a
85b85162
+39
1 changed file
expand all
collapse all
unified
split
lua
artio
builtins.lua
+39
lua/artio/builtins.lua
···
479
return builtins.diagnostics(props)
480
end
481
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
482
return builtins
···
479
return builtins.diagnostics(props)
480
end
481
482
+
---@class artio.picker.keymaps.Props : artio.Picker.config
483
+
---@field modes? string[] defaults to all
484
+
485
+
---@param props? artio.picker.keymaps.Props
486
+
builtins.keymaps = function(props)
487
+
props = props or {}
488
+
props.modes = props.modes or { "n", "i", "c", "v", "x", "s", "o", "t", "l" }
489
+
490
+
---@type vim.api.keyset.get_keymap[]
491
+
local lst = vim.iter(props.modes):fold({}, function(keymaps, mode)
492
+
vim.iter(vim.api.nvim_get_keymap(mode)):each(function(km)
493
+
keymaps[#keymaps + 1] = km
494
+
end)
495
+
return keymaps
496
+
end)
497
+
498
+
return artio.generic(
499
+
lst,
500
+
extend({
501
+
prompt = "keymaps",
502
+
format_item = function(km)
503
+
return ("%s %s %s | %s"):format(km.mode, km.lhs, km.rhs, km.desc)
504
+
end,
505
+
---@param km vim.api.keyset.get_keymap
506
+
on_close = function(km, _)
507
+
vim.schedule(function()
508
+
local out = vim.api.nvim_cmd({
509
+
cmd = ("%smap"):format(km.mode),
510
+
args = { km.lhs },
511
+
}, {
512
+
output = true,
513
+
})
514
+
vim.print(out)
515
+
end)
516
+
end,
517
+
}, props)
518
+
)
519
+
end
520
+
521
return builtins