diff options
Diffstat (limited to '.config/nvim/plugin/50-nvim-help.lua')
| -rw-r--r-- | .config/nvim/plugin/50-nvim-help.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/.config/nvim/plugin/50-nvim-help.lua b/.config/nvim/plugin/50-nvim-help.lua new file mode 100644 index 0000000..926bb68 --- /dev/null +++ b/.config/nvim/plugin/50-nvim-help.lua @@ -0,0 +1,23 @@ +-- `nvim-help://<tag>` — open Neovim help for <tag> in a scratch, read-only +-- buffer. Registered with the follow engine (see 50-follow.lua). + +require("dotfiles.follow").register_scheme("nvim-help", { + resolve = function(uri) + local tagfiles = {} + for _, path in pairs(vim.opt.runtimepath:get()) do + tagfiles[#tagfiles + 1] = path .. "/doc/tags" + end + vim.opt_local.tags = tagfiles + local matches = vim.fn.taglist(uri) + if #matches == 0 then + return nil, "No help page found for nvim-help://" .. uri + end + return matches[1].filename + end, + after = function() + vim.opt_local.bufhidden = "wipe" + vim.opt_local.buftype = "nofile" + vim.opt_local.swapfile = false + vim.opt_local.readonly = true + end, +}) |
