Visual Studio Codeをつかって楽しくScalaとペアプログラミング


はじめに

みなさんScalaのコーディングに何使ってますか?
おそらくデファクトであるIntellij IDEAを使っている方が多いんじゃないかと思いますが、わたしもその一人でした。
最近テレワークが多くなって、ペアプロも気軽に席に行って...ということが難しくなってきました。
画面共有という手もありますが、IDEと同時に起動するとPCが熱くなってきますし、やっぱりペアプロするには見ているところをあたかも隣にいる感覚でやりたいですよね。
以前からVisual Studio CodeでScalaを書くという試みはやっていたのですが、最近Metalsに出会ったので共有しようと思います。

Metalsとは

Metalsは、Scala用のLanguage Serverです。
Visual Studio Codeや、VimなどのテキストエディタでIntellijのようなIDEの機能を提供します。
コードジャンプはもちろん、型の定義を表示したり、参照されている箇所をすべて検索することができます。
わたしはv0.8.4から使用しているのですが、2020/05/04にリリースされたv0.9.0ではScala 3もサポートされ、動作がかなり軽くなった印象があります。
詳細の使い方はMetalsの公式ドキュメントを参照ください。

Visual Studio Live Shareとは

Visual Studioに含まれている、共同開発ができるツールです。Visual Studio Code用にも拡張機能が提供されています。
とにかくすごくて便利なので、動いている模様はこちらの公式サイトをご覧ください。
ざっと共同編集の他に、以下の機能があります。

  • チャット
  • 通話機能
  • ローカルのポートを参加者と共有する
  • ターミナル共有

サクッとやる

まず、Visual Studio Codeをインストールしましょう。

Metalsの設定

拡張機能をインストールする

Scalaを使用するには、以下のリンクから拡張機能をインストールしてください。
Scala(Metals)をインストール
ペアプロするには、VSCode用の拡張であるLive Share Extension Packが必要です。
Live Share Extension Packをインストール

インストールが終わったらリロードしておきましょう。

build.sbtがあるディレクトリをVSCodeで開く

準備はたったこれだけです!
右下にImport buildというボタンが現れるのでクリックします。(スクショはこちらから引用)

.gitignoreを編集

Import buildが始まると、Metalsがファイルを生成しだすので無視してやります。
.gitignoreに以下を追加します。

.metals/
.bloop/
project/metals.sbt

以上でScalaを書く準備は完了です!

ペアプロの設定

以下、新しく共同編集のセッションを作る手順です。

画面左下のLive Shareをクリック

MicrosoftかGitHubアカウントでログイン


認証のためにブラウザで新しいタブが開くので、AuthorizeしてVSCodeに戻りましょう。

招待リンクをコピーして参加者に共有する

画面右下から、Copy againをクリックするとクリップボードに招待リンクがコピーされます。

参加者はこのリンクを使って、作成した共同編集のセッションに参加できます。

ペアプロの準備ができましたね!

使ってみて分かったことなど

  • PlayFrameworkのviewsディレクトリ以下やroutesファイルでは、コードジャンプと補完が効かない
  • 動作がおかしくなったら、.bloopディレクトリを削除すると正常に戻った
  • importの挙動がイケてない(IntellijだとAlt+Enterのやつ)

Intellijの使用感に近づけるプラグインたち

おわりに

前からIntellijから乗り換えたかったんですが、Metalsのおかげでだいぶ普段使いができるようになったと思います。
動作が軽くなって、しかも無料でペアプロできるのですが、Scalaに関する機能はまだまだ発展途上です。
Intellijも進化していてときどき浮気したくなりますが、これからもMetalsの動向をウォッチしておきます。