Elixirでテストファイルとの行き来を楽にする
はじめに
- 今回はtips的な記事です
背景
- Elixirを書いているときにテストファイルと実行ファイルの行き来に困っていました
- JavaとかKotlinを書いていたときはIntelliJ IDEAがいい感じにやってくれていた分、Elixirはエディタがなんでも良い分そこら辺を拡張で頑張る必要があるなと思い探していました
これと出会う
- 求めていた感じの拡張
- READMEを見ただけでこれだと思い早速使ってみます
使ってみる
- VSCodeのPluginからインストールする
- 検索窓から
alternate file
で検索すると引っかかるので、それをインストールすれば終了(必要に応じてVSCodeの再起動をしてください) - その後、プロジェクトのルートディレクトリに
.projections.json
を作成します(下記な感じで検索→作成とすれば雛形は作ってくれます)
-中身はこんな感じ
{ "apps/**/lib/**/*.ex": { "alternate": "apps/{dirname}/test/{dirname}/{basename}_test.exs" }, "apps/**/lib/*.ex": { "alternate": "apps/{dirname}/test/{basename}_test.exs" } }
- ここでアプリケーションコードとテストコードの対応性を書いておけば、拡張側で対応してると認識してくれるので、移動が可能になります。
- ここのディレクトリ構造は一定自由に設定できるのですが、一定ルールを決めておいた方が管理は楽になると思います。
(例えば、テストコード側は
/test
以下を全部フラットにしてるのに、アプリケーション側はlib
以下にディレクトリを切ると、ここのjsonで対応性を頑張らないといけなくなります。そんなことをするくらいならディレクトリ構造を見直してしまって、test
以下とlib
以下のディレクトリ構造は一致させるようにするのがいいのかなと思いました)
拡張でできること
- 以下READMEから抜粋ですが、非常にシンプルでファイルの切り替えと作成。それを画面分割して開くか開かないか。それだけです。
Alternate File - Switch to the alternate file (if found) in the current pane Alternate File in Split - Switch to the alternate file (if found) in a split pane Create Alternate File - Switch to the alternate file (if found) in the current pane. If not found, create the file. Create Alternate File in Split - Switch to the alternate file (if found) in a split pane. If not found, create the file.
- 上記のアクションは拡張がインストールされれば、下記の感じでサジェストされるようになります
- あとは、ショートカットの設定しておけば、シームレスに移動ができるようになります。
- 個人的には、Alternatte fileとCreate Alternate Fileを同じショートカットに設定しておくと、ファイルがあれば移動できるしなければ作成するというような挙動をしてくれるので非常におすすめです。