aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/commands.lua10
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils.lua12
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)