Neovim + Ale で開発環境を整えたのはいいものの、iex -S mix
で起動したREPLで recompile()
が効かなかった。
ゴリ押し気味の解決策だが一応動いてくれているのでメモしておきます。
解決策
https://github.com/phoenixframework/phoenix/issues/1165
全部ここに書いてあるし下のスニペットは丸コピなので詳しくはこちらを参照してください。
どうやらlint時にコンパイルが行われることによって、recompile()
時には既にコンパイル済と認識されてしまうようです。
対策として、ALELintPostが呼ばれた後に一度aleを無効にしてファイルを保存、その後再度aleを有効とすることによって、「lint時のコンパイル後に編集した状態」をつくっています。
~/.config/nvim/ftplugin/elixir.vim
augroup AleGroup
autocmd!
autocmd User ALELintPost call TouchOpenFile()
augroup END
func! TouchOpenFile()letg:ale_enabled=0
sleep 800mwletg:ale_enabled=1
endfunc