これまでScalaでの開発にはENSIMEを使ってきたけど, もうそろそろ頃合いだとおもうのでMetalsに乗り換えた. エディタ側でLSPのサポートが充実してきているのでこれはだいぶ簡単で, さっくり乗り換えることができた. Metalsはビルド部分は裏側でBloopを使っているので, テストの実行なんかもこれに乗っかるとだいぶ楽になる. けどEmacsからBloopを利用するにはまだちょっと面倒なところもあったので, この際いろいろ整備してみた. Metals + Bloop MetalsはまぁふつうにScalaのlanguage serverという感じだけど, ENSIMEと比べると以下の点が強力(個人的な視点). コンパイラがホンモノなのでエラーを誤検知しない (従来の開発環境では) presentation compilerと呼ばれる, ちょっとインチキしてるやつだった 誤検知で
![LSP時代のScala開発環境: Metals, Bloop (on Emacs / lsp-mode) - 貳佰伍拾陸夜日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/5074ec94e241b27ab9a1df28af6d244af25ec936/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftarao%2F20190627%2F20190627211424.png)