22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeで最強のElixir開発環境を構築する

Last updated at Posted at 2020-05-27

VSCodeで最強のElixir開発環境を構築する

対象読者

  • _VSCode_を使用したい
  • いいIDEを知らないから教えて
  • _VSCode_を使っているけど、_ElixirLS_の拡張が上手く動かない

※筆者の環境はmacOSです。

なぜこの記事を書いたか

_VSCode_を使いたいと思って、Elixirの色々なプラグインを試しましたが、なかなか上手く使いこなすことが出来ませんでした。
Elixirのプラグインが動かない!!と思っている方はこちらを読んで試してみてください。

VSCode

まずはVSCodeをインストールしてください。

_VSCode_にお好みのプラグインをインストールします。
プラグインの追加は、画面の左ペインのブロックの塊みたいなやつから設定できます。
Screen Shot 2020-05-27 at 14.45.16.png

_VSCode_に設定するプラグインについては色々な記事があります。

参考までに私がインストールしているプラグインの中で、特に重要度の高いものを3つピックアップしました。

  • Vim
    • Vim キーバインディングを実現する。これがなければ_VSCode_は使わない。
  • Project Manager
    • 各プロジェクトの切り替えを簡単に行う。
  • GitLens
    • Gitを使うならば欲しい。
    • change_ファイルや_unstage のファイルの閲覧が簡単に出来る。
    • エディター画面で行単位で直近のコミット履歴が見れる。

他にもPythonやJavaScript等の各言語向けのプラグインを追加します。

Elixirを利用する上で最強のプラグイン

ElixirLSのプラグインをインストールしてください。
image.png
少し前までは_ElixirLS Fork_のレポのものが最新でしたが、Forkされていたものがオリジナルのレポにマージされました。

何が出来るのか?

  • オンマウスで関数のコメントを表示する
    • Screen Recording 2020-05-27 at 15.31.14.mov.gif
  • メソッドの定義へ飛ぶ(Go to definition)(
    • Screen Recording 2020-05-27 at 15.49.07.mov.gif
  • メソッド補完
    • Screen Recording 2020-05-27 at 15.53.05.mov.gif
  • エラーの警告
    • Screen Shot 2020-05-27 at 15.54.28.png

他にも以下の様な機能が揃っています。

  • syntax highlighting
    • メソッドや変数、文字列をわかりやすく表示してくれます。
  • カッコの補完
    • 閉じるカッコを自動で保管してくれます
  • コードのフォーマット修正(Alt + Shift + F)

ここでハマった

メソッドの定義に飛ばない

オンマウスで関数のコメントを表示することは出来るが、メソッドの定義に飛んでくれない。
正直、これはメチャクチャハマりました。
メソッドの定義に飛ぶことが出来ないなんて、エンジニア一年生でも許容できないでしょう。

これに該当している人は以下を試してください。

  • Elixir関係の複数のプラグインを入れている。
    • _vscode-elixir_等のプラグインを設定している方は無効化(要再起動)してください。
  • Elixirをsourceからインストールする
    • ElixirLSのGithubにIssueとして登録されていますが、これに該当している可能性があります
    • 解決策としては、Elixirをsourceからインストールすることですが、asdfというプラグインを入れることで簡単に出来ます。
  • 上記を試してもサジェストされない場合、一度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_について勉強中の身ですので、ここで詰まった、や、こういう方法がいいなど、ご意見がありましたらぜひ伺わせて頂きたいと思います。

22
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?