unite-haddock 書いた

http://d.hatena.ne.jp/kitokitoki/20111217/p1 の「ghc-browse-document の anything 化」が便利っぽかったので同じようなものを書いた.
https://github.com/eagletmt/unite-haddock
ghc-mod が必要.cabal install ghc-mod でインストールできる.Vim 内での $PATH に Cabal の bindir *1 が含まれていることも確認しておくこと.

:Unite haddock でモジュールの一覧が表示され,unite.vimインターフェイスで選択できる.

デフォルトのアクション (browse_local) ではローカルのドキュメントを開く.ちなみにローカルなドキュメントは,cabal-install でパッケージをインストールする際に --enable-documentation というフラグをつけるか,$HOME/.cabal/config で documentation: True と設定しておくと $HOME/.cabal/share/doc あたりに生成される.

もうひとつ browse_remote というアクションを提供していて,こっちは Hackage 上のドキュメントを開く.

現状 max_candidates を設定していないので,インストールされているモジュールがすべて候補として表示される.
速度的な面で問題がある場合,vimrc で

call unite#custom_max_candidates('haddock', 100)

などと候補の数の最大値を設定してみてください.
自分の環境だと1200くらいモジュールが表示されて,初回こそ少し待たされるときもあるけどそれ以降はスムーズに動いているのでこのままでいいかなーと思ってます.

max_candidates を設定していても,unite のバッファ上で (unite_toggle_max_candidates) (デフォルトだと M にマッピングされている) すると max_candidates の設定の有効化・無効化をトグルできます.

*1:普通は $HOME/.cabal/bin