aboutsummaryrefslogtreecommitdiff
path: root/runtime/plugin/man.lua
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2022-09-12 10:57:59 -0600
committerJosh Rahm <rahm@google.com>2022-09-12 10:57:59 -0600
commit040b05d7d01defe16e4b31a6fd9c863fd2443091 (patch)
tree5e4a295fe310c73dfc2fe196708c49b4c0b41396 /runtime/plugin/man.lua
parent52ce04a002a882da19bb2c78d1fd8eb4825d669d (diff)
parentfd70e2bff2440181f63fe124738cf2a025d1e6a5 (diff)
downloadrneovim-040b05d7d01defe16e4b31a6fd9c863fd2443091.tar.gz
rneovim-040b05d7d01defe16e4b31a6fd9c863fd2443091.tar.bz2
rneovim-040b05d7d01defe16e4b31a6fd9c863fd2443091.zip
Merge remote-tracking branch 'upstream/master' into floattitle
Diffstat (limited to 'runtime/plugin/man.lua')
-rw-r--r--runtime/plugin/man.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/runtime/plugin/man.lua b/runtime/plugin/man.lua
new file mode 100644
index 0000000000..4b1528b0cb
--- /dev/null
+++ b/runtime/plugin/man.lua
@@ -0,0 +1,34 @@
+if vim.g.loaded_man ~= nil then
+ return
+end
+vim.g.loaded_man = true
+
+vim.api.nvim_create_user_command('Man', function(params)
+ local man = require('man')
+ if params.bang then
+ man.init_pager()
+ else
+ local ok, err = pcall(man.open_page, params.count, params.smods, params.fargs)
+ if not ok then
+ vim.notify(man.errormsg or err, vim.log.levels.ERROR)
+ end
+ end
+end, {
+ bang = true,
+ bar = true,
+ addr = 'other',
+ nargs = '*',
+ complete = function(...)
+ return require('man').man_complete(...)
+ end,
+})
+
+local augroup = vim.api.nvim_create_augroup('man', {})
+
+vim.api.nvim_create_autocmd('BufReadCmd', {
+ group = augroup,
+ pattern = 'man://*',
+ callback = function(params)
+ require('man').read_page(vim.fn.matchstr(params.match, 'man://\\zs.*'))
+ end,
+})