diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/commands.lua | 10 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/utils.lua | 12 |
2 files changed, 22 insertions, 0 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/commands.lua b/nvim/.config/nvim/lua/tobyvin/commands.lua index f043e75..7e0da3f 100644 --- a/nvim/.config/nvim/lua/tobyvin/commands.lua +++ b/nvim/.config/nvim/lua/tobyvin/commands.lua @@ -8,3 +8,13 @@ vim.api.nvim_create_user_command("Scratch", function(cmdln) vim.bo[bufnr].filetype = cmdln.args[1] vim.api.nvim_set_current_buf(bufnr) end, { nargs = "?", desc = "scratch buffer", complete = "filetype" }) + +vim.api.nvim_create_user_command("Runtime", function(opts) + local items = vim.api.nvim_get_runtime_file(("*%s*"):format(opts.args), not opts.bang) + U.select(items, { + prompt = "select runtime file", + format_item = function(item) + return item:gsub(vim.env.HOME, "~") + end, + }, vim.cmd.edit) +end, { nargs = "?", bang = true, desc = "scratch buffer", complete = "filetype" }) diff --git a/nvim/.config/nvim/lua/tobyvin/utils.lua b/nvim/.config/nvim/lua/tobyvin/utils.lua index bbbe857..c107d17 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils.lua @@ -11,6 +11,18 @@ function M.inspect(v) return v end +function M.select(items, opts, on_choice) + if #items == 1 then + on_choice(items[1]) + elseif #items > 1 then + vim.ui.select(items, opts, function(item, idx) + return item ~= nil and on_choice(item, idx) or nil + end) + else + vim.print("No results found") + end +end + function M.lazy_require(modname) return setmetatable({}, { __index = function(_, k) |