Elixir初心者でわかってないことだらけなので、より良い設定が見つかればあとから変更予定です。
Elixir のインストール手順はこの記事では省略します。
使用するプラグイン
プラグインのインストールは NeoBundleなりなんなりで適当にインストールしてください。
- vim-elixir
- vim-quickrun
- vim-watchdogs
- vim-yacd
- 拙作プラグインですが利用は任意。理由は後述します。
vim-elixir
- シンタックスハイライトやインデントなどをよしなにしてくれるので、何も考えずにインストールします。
- インストールするのみで設定は特になしです。
vim-quickrun
言わずと知れた quickrun です。
デフォルトでスクリプトの実行には対応していますが、mix test
も quickrun で実行できるようにしたいのでその設定を追加します。
quickrun で mix test
下記の例では <Leader>t
で mix test
を実行するようにしています。hook/cd/directory
に mix.exs があるディレクトリを指定するため拙作のプラグインを使っていますが、同じことができれば別プラグインでも個別に関数定義でも問題ありません。
なお errorformat
は適当に書いたので、使っていて不満があればその都度変更する予定です。
- ftplugin/elixir.vim
letg:quickrun_config.mix_test = {
\ 'command' : 'mix',
\ 'exec' : 'mix test',
\ 'outputter' : 'quickfix',
\ 'errorformat' : '%E\ %#%n)\ %.%#,%C\ %#%f:%l,%Z%.%#stacktrace:,%C%m,%-G%.%#',
\ 'hook/cd/directory': yacd#get_root_dir(expand('%:p:h'))
\ }
nnoremap<Leader>t :QuickRun mix_test<CR>
vim-watchdogs
シンタックスチェッカーでは Syntasticが Elixir をサポートしているようですが、
私は watchdogs 派なので、watchdogs でシンタックスチェックできるようにします。
シンタックスチェックの設定
Syntastic が内部で mix compile
を実行してその結果をチェックしていたので、それをパクります。
2015/08/06修正: mix compile
だとテストコードのシンタックスチェックができなかったので elixir
での実行結果をチェックするよう修正しました。
hook/cd/directory
は mix test
の箇所で説明したのと同様で、errorformat
も同様に適当に書いたものなので、不満がでてきたらあとで修正予定です。
g:quickrun_config
を設定しているファイル
letg:quickrun_config = {
\ 'watchdogs_checker/elixir': {
\ 'command' : 'elixir',
\ 'exec' : '%c %s',
\ 'errorformat' : '**\ (%.%#Error)\ %f:%l:\ %m,%-G%.%#',
\ 'hook/cd/directory': yacd#get_root_dir(expand('%:p:h'))
\ },
\ 'elixir/watchdogs_checker': {
\ 'type' : 'watchdogs_checker/elixir',
\ }
\ }
vim-yacd
vimscriptの勉強用に作ったプラグインです。
以下のように root_names
を定義しておくと
上記の例のように yacd#get_root_dir
関数で mix.exs のある親ディレクトリを検索してくれます。
letg:yacd#root_names = ['mix.exs','.git']
まとめ
ここまでの設定で実行、テスト、シンタックスチェックだけは実現できました。
それ以外については勉強を進める中で追加していき、この記事にも反映していけたらと思います。
こんな設定便利だよーというのがあれば教えていただけると幸いです。