unite-function-list
:Unite function……ではなくて、:help function-list を unite.vim で出力したい。みたいな話があったので簡単に書いてみた。
let s:source = { \ "name" : "function-list", \} function! s:get_functionlist(help) if !filereadable(a:help) return [] endif let file = map(readfile(a:help), "{ 'text' : v:val, 'line' : v:key }") let start = filter(copy(file), 'v:val.text =~ ''\*function-list\*''')[0].line let end = filter(copy(file[start : ]), 'v:val.text =~ ''^==============================================================================$''')[0].line return map(file[start : end], "v:val.text") endfunction function! s:source.async_gather_candidates(args, context) let help = get(split(globpath(&rtp, "doc/usr_41.*"), '\n'), 1, "") let candidates = s:get_functionlist(help) return map(candidates, '{ "word" : v:val }') endfunction call unite#define_source(s:source) unlet s:source
実装は単純に doc ファイルを読み込んで表示しているだけです。
本当は unite-source を定義しないでできないかなーと思っていたけど無理そげだったので泣く泣く専用の unite-source を定義することに。
こういうことをするために任意のファイルを表示するだけの unite-source がほしいかもしれない