Neomake - 非同期実行のSyntastic
syntasticを使っていると大きなファイルでsyntax checkなどするとしばらく応答が返らないことがよくある。neovimには非同期でjobを実行する機能があり、それを活かしたpluginとしてNeomakeというsyntasticと同様の機能をもつものがあることを知ったので使ってみた
deinを使っていれば以下のような設定だけでOK
[[plugins]] repo = 'neomake/neomake' hook_add = ''' autocmd! BufWritePost * Neomake '''
ファイルを開いて最初にNeomakeを実行するときだけ一瞬固まるが、その後はNeomake実行時にもカーソルが動かせること確認できた
ちなみにvimでも動くが非同期実行はできない
デフォルトの設定ではerrorを見つけた際もlocation listが開かないので:lopenを使う
もしくは以下の設定を入れれば自動で開くようになる
let g:neomake_open_list = 2
syntasticと同じく、:NeomakeInfoで現在どのmakerが有効なのか確認できる(makerとはsyntasticで言うcheckerのこと)
また、makerのカスタマイズもsyntasticと同様の形でできる
"let g:neomake_{ filetype }_{ makername }_maker let g:neomake_javascript_jshint_maker = { \ 'args': ['--verbose'], \ 'errorformat': '%A%f: line %l\, col %v\, %m \(%t%*\d\)', \ } let g:neomake_javascript_enabled_makers = ['jshint']
errorを示すsignの変更も可能
もちろんwarningやinfoなども別々に可能
let g:neomake_error_sign = { \ 'text': 'E', \ 'texthl': 'ErrorMsg', \ }
詳しくはhelpで