aboutsummaryrefslogtreecommitdiff
path: root/runtime/plugin/man.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2022-09-02 15:20:29 +0100
committerGitHub <noreply@github.com>2022-09-02 15:20:29 +0100
commit2afcdbd63a5b0cbeaad9d83b096a3af5201c67a9 (patch)
treea5e44f3dba1287c398af66673fa926e4841c5343 /runtime/plugin/man.lua
parente085d0be31c68921769c6c437920a3346caec69b (diff)
downloadrneovim-2afcdbd63a5b0cbeaad9d83b096a3af5201c67a9.tar.gz
rneovim-2afcdbd63a5b0cbeaad9d83b096a3af5201c67a9.tar.bz2
rneovim-2afcdbd63a5b0cbeaad9d83b096a3af5201c67a9.zip
feat(Man): port to Lua (#19912)
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
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,
+})