🐻 minimal ui2 fuzzy finder for Neovim codeberg.org/comfysage/artio.nvim
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(builtins): add `commands` builtin

robin 8679236f e62898bc

+39
+6
doc/artio.txt
··· 335 335 336 336 Plug: `<Plug>(artio-keymaps)`. 337 337 338 + builtins.commands() *artio-commands* 339 + 340 + list all user commands. uses formatted data from |nvim_get_commands()|. 341 + 342 + Plug: `<Plug>(artio-commands)`. 343 + 338 344 builtins.quickfix() *artio-quickfix* 339 345 340 346 show current quickfix list. allows previewing items and updating the list.
+30
lua/artio/builtins.lua
··· 607 607 ) 608 608 end 609 609 610 + builtins.commands = function(props) 611 + props = props or {} 612 + local lst = vim.api.nvim_get_commands({}) 613 + 614 + return artio.generic( 615 + vim.tbl_values(lst), 616 + extend({ 617 + prompt = "commands", 618 + ---@param item vim.api.keyset.command_info 619 + format_item = function(item) 620 + return item.name 621 + end, 622 + ---@param cmd vim.api.keyset.command_info 623 + on_close = function(cmd, _) 624 + local nargs = vim.F.npcall(tonumber, cmd.nargs) 625 + local fmt = (nargs and nargs > 0) and ":%s " or ":%s" 626 + 627 + artio.schedule(function() 628 + vim.api.nvim_feedkeys(string.format(fmt, cmd.name), "n", false) 629 + end) 630 + end, 631 + hl_item = function(item) 632 + return { 633 + { { 0, #item.v.name }, "@function.macro.vim" }, 634 + } 635 + end, 636 + }, props) 637 + ) 638 + end 639 + 610 640 builtins.quickfix = function(props) 611 641 props = props or {} 612 642
+3
plugin/artio.lua
··· 100 100 vim.keymap.set("n", "<Plug>(artio-keymaps)", function() 101 101 return require("artio.builtins").keymaps() 102 102 end) 103 + vim.keymap.set("n", "<Plug>(artio-commands)", function() 104 + return require("artio.builtins").commands() 105 + end) 103 106 vim.keymap.set("n", "<Plug>(artio-quickfix)", function() 104 107 return require("artio.builtins").quickfix() 105 108 end)