VSCodeで最強のElixir開発環境を構築する
対象読者
- _VSCode_を使用したい
- いいIDEを知らないから教えて
- _VSCode_を使っているけど、_ElixirLS_の拡張が上手く動かない
※筆者の環境はmacOSです。
なぜこの記事を書いたか
_VSCode_を使いたいと思って、Elixirの色々なプラグインを試しましたが、なかなか上手く使いこなすことが出来ませんでした。
Elixirのプラグインが動かない!!と思っている方はこちらを読んで試してみてください。
VSCode
まずはVSCodeをインストールしてください。
_VSCode_にお好みのプラグインをインストールします。
プラグインの追加は、画面の左ペインのブロックの塊みたいなやつから設定できます。
_VSCode_に設定するプラグインについては色々な記事があります。
参考までに私がインストールしているプラグインの中で、特に重要度の高いものを3つピックアップしました。
- Vim
- Vim キーバインディングを実現する。これがなければ_VSCode_は使わない。
- Project Manager
- 各プロジェクトの切り替えを簡単に行う。
- GitLens
- Gitを使うならば欲しい。
- change_ファイルや_unstage のファイルの閲覧が簡単に出来る。
- エディター画面で行単位で直近のコミット履歴が見れる。
他にもPythonやJavaScript等の各言語向けのプラグインを追加します。
Elixirを利用する上で最強のプラグイン
ElixirLSのプラグインをインストールしてください。
※少し前までは_ElixirLS Fork_のレポのものが最新でしたが、Forkされていたものがオリジナルのレポにマージされました。
何が出来るのか?
他にも以下の様な機能が揃っています。
- syntax highlighting
- メソッドや変数、文字列をわかりやすく表示してくれます。
- カッコの補完
- 閉じるカッコを自動で保管してくれます
- コードのフォーマット修正(Alt + Shift + F)
ここでハマった
メソッドの定義に飛ばない
オンマウスで関数のコメントを表示することは出来るが、メソッドの定義に飛んでくれない。
正直、これはメチャクチャハマりました。
メソッドの定義に飛ぶことが出来ないなんて、エンジニア一年生でも許容できないでしょう。
これに該当している人は以下を試してください。
- Elixir関係の複数のプラグインを入れている。
- _vscode-elixir_等のプラグインを設定している方は無効化(要再起動)してください。
- Elixirをsourceからインストールする
- 上記を試してもサジェストされない場合、一度VSCodeを落として.elixir_lsディレクトリーを削除して再度起動して下さい。dialyzerが再度ビルドされて正常に動くようになる可能性があります。
Enterキーでサジェストが確定出来ない
ElixirLSではデフォルトでサジェストの受け入れを_tab_のみに設定しています。
"editor.acceptSuggestionOnEnter": "on"
を設定することで、Enterキーでサジェストを確定できるようになります。
asdf
asdfはオープンソースツールで、複数の実行環境を管理することが出来ます。
asdfのインストール方法はこちらから確認できます。
macOSの場合、Homebrewでインストールできます。
brew install asdf
あとは使っているShellのタイプに応じて、Shellのコンフィグファイルに以下のような設定を追記します。
以下は_ZSH_の場合の例です。
~.zshrcに以下を追記します。
. $(brew --prefix asdf)/asdf.sh
これでasdfの準備は完了です。
Elixirを使えるように、以下のプラグインの追加を実行してください。
asdf plugin-add erlang
asdf plugin-add elixir
Elixirを使用したい任意のディレクトリで、以下の様にターミナルからコマンドを打つだけです。
asdf install elixir ref:51c95b60004d3d9d297fff23f576bdd97c931afd
ref:51c・・・
の部分はElixirのコミットのrefです。
任意のバージョンを探して指定してください。
最後に
私もまだまだ_VSCode_や_Elixir_について勉強中の身ですので、ここで詰まった、や、こういう方法がいいなど、ご意見がありましたらぜひ伺わせて頂きたいと思います。