ghcmod.vim と Unite hoogle の組み合わせ

ghcmod.vim でカーソル位置の型を得ることができるため、これを Unite hoogle の入力としてみると便利そうだと思った。

例えば ~/.vim/ftplugin/haskell.vim

nnoremap <buffer> <silent> <Space>o :<C-u>call <SID>unite_hoogle_type()<CR>
function! s:unite_hoogle_type()
  let [_, l:type] = ghcmod#type()
  call ghcmod#type_clear()
  call unite#start(['hoogle'], { 'input': l:type })
endfunction

を追加する。

すると、よくわからない位置に undefined を書いてとりあえずコンパイルは通る状態にした後、

undefined の位置で <Space>o と打鍵すると

こうなる、みたいな使い方がありそう。

まぁ undefined に限らず、型でも検索できる hoogle と、型を得ることができる ghc-mod type の組み合わせは良さそう。