1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 06:20:05 +08:00
SpaceVim/bundle/vim-van/autoload/unite/sources/manpage.vim

51 lines
1.2 KiB
VimL

let s:save_cpo = &cpo
set cpo&vim
let s:unite_source = {
\ 'name': 'manpage',
\ 'hooks': {},
\ 'action_table': {'*': {}},
\ }
let s:unite_source.action_table['*'].preview = {
\ 'description' : 'open this manpage',
\ 'is_quit' : 0,
\ }
function! s:unite_source.action_table['*'].preview.func(candidate)
execute a:candidate.action__command
endfunction
function! s:manpage(x)
return printf("%s %s", "SuperMan", a:x)
endfunction
function! s:unite_source.gather_candidates(args, context)
let l:manpages = system("apropos . | awk \'{print $1}\'")
let manpageslist = unite#util#sort_by(unite#util#uniq_by(
\ map(split(l:manpages, '\n'),
\'[fnamemodify(v:val, ":t:r"), fnamemodify(v:val, ":p")]'), 'v:val[0]'),
\'v:val[0]')
return map(manpageslist, '{
\ "word": v:val[0],
\ "source": "manpage",
\ "kind": ["file", "command"],
\ "action__command": s:manpage(v:val[0]),
\ "action__type": ": ",
\ "action__path": v:val[1],
\ "action__directory": fnamemodify(v:val[1], ":h"),
\ }')
endfunction
function! unite#sources#manpage#define()
return s:unite_source
endfunction
"unlet s:unite_source
let &cpo = s:save_cpo
unlet s:save_cpo