最近現場で Clojure を使う機会があり、 Visual Studio Code を使って開発をするための環境を整えました。
Clojure の場合は REPL駆動開発という開発手法が主流だと思います。
そのため開発環境の構築は他の言語と比べると少し作業が多くなります。(とは言っても10分〜20分あれば完了します。)
備忘も含めて記事にしたので Clojure の開発環境と整えてみたいって方は是非参考にしてください。
VS Code で Clojure を動かすために必要な準備
Visual Studio Code で Clojure を使うために必要なものは下記の4つです。
この場では箇条書きにして詳細は順を追って説明します。
Clojure をインストールする
まずは大前提 Clojure のインストールです。これがないと始まりません。
ここでは Mac の Homebrew を使ってインストールをします。
Homebrew のインストールがまだの場合は下記のページを参考にインストールをしてください。Homebrew はインストールしておいて損をすることはまずないと思うので、インストールをすることをおすすめします。
Homebrew を使って Clojure をインストールするのは非常に簡単です。下記のコマンドを実行するだけです。
brew install clojure
インストールにはそこまで時間がかからないと思います。

インストールが完了したら正常にインストールができたかを確認するために下記のコマンドを実行します。
clojure --version
下図のように Clojure のバージョンが表示されたら問題なく Clojure がインストールされている証拠です。

Clojure のインストールが完了したら次は leiningen のインストールです。
leiningenをインストールする
続いては、leiningen をインストールします。
leiningen の読み方は「らいにんげん」です。Clojure に精通した英語圏の方がそう言っていたのでまあ間違っていないと思います。
leiningen も Homebrew を使ってインストールします。
インストールは非常に簡単で下記のコマンドを実行するだけです。
brew install leiningen
こちらもインストールにはそこまで時間はかからないと思います。

正しくインストールできたかを確認するために下記のコマンドを実行します。
lein --version
下図のように leiningen のバージョンが表示されたら問題なく Clojure がインストールされている証拠です。

leiningen のインストールが完了したら次はCalva のインストールです。
Calvaをインストールする
Calva は Visual Studio Code の拡張機能です。
Calva の詳細を知りたい方は下記を参照してください。
Calva のインストールは非常に簡単です。
Visual Studio Code を起動して拡張機能で Calva で検索して、インストールをクリックするだけです。
Visual Studio Code の操作に慣れていない人は下図を参考にしてください。
(※自分の場合は既にインストールしているので Install ではなく Disable と Uninstall ボタンが表示されています。。m_ _m)

これで Calva のインストールは完了です。
次で最後の Clojure application の作成です。
Clojure application の作成
最後は Clojure application の作成です。
これが Visual Studio Code で REPL駆動開発をする上で思った以上に重要となります。
その重要となっている理由は拡張機能の Calva の仕様によるものです。
細かい説明は省略するのですが、REPL開発には REPL サーバーの起動と接続が必須になります。
Calva を使うとその辺りはいい感じにしてくれるのですが、それには条件があります。
それは Visual Studio Code で開いているディレクトリの一番上の階層に project.clj もしくは deps.ednが必要になります。
細かいことは下記のユーザーガイドに記載されています。

少なくとも今回の場合は project.cljが必要になります。
project.clj を自分で作成して用意してもいいのですが、Clojure に慣れている人を除いては簡単な話ではないので、コマンドを使ってパパッと作成しちゃいます。
コマンドを実行するためにターミナルを開いて Clojure のアプリケーションを作成したい任意のディレクトリに移動します。
任意のディレクトリに移動したら下記のコマンドを実行します。
※このままでは実行できません。
lein new {template_name} {application_name}
上記のコマンドは leiningen のテンプレート機能を使って簡単なアプリケーションのディレクトリを作成するコマンドです。
上記のコマンドでは template_nameは省略することができます。ですので必要なのは application_name のみです。これは任意のアプリケーション名で問題ありません。
ですので、sample_clojure_app という名前でアプリを作成したい場合は下記のコマンドを実行すると良いです。
lein new sample_clojure_app
コマンドを実行すると下図のように sample_clojure_app というディレクトリが作成されていると思います。

これで Clojure Application の作成の完了です。
あとは Visual Studio Code を起動して REPL を立ち上げるだけです。
VSCode で REPL を起動する
まずは Visual Studio Code を起動します。
起動したら Open Folder を選択します。

先ほど作成した Clojure application を選択し、開きます。

フォルダーを開くと下図のようになると思います。

ここで重要になるのが project.clj ファイルです。
Visual Studio Code の拡張機能である Calva の仕様の関係でこのファイルは必須になります。
lein コマンドを使用してこのディレクトリーを作成している場合は必ず project.clj は存在するので、もしなかった場合は開くディレクトリを間違っている可能性があるので確認してください。
また project.clj は開いているディレクトリの一番上の階層に配置されている必要があります。
問題なくディレクトリを開くことができたらいよいよ REPL を起動させます。
Visual Studio Code で REPL を起動させるには、下図の赤枠で示した VS Code の左下にあるグレーの文字の REPL をクリックします。

REPL ボタンをクリックすると下図のように Visual Studio Code の上部に幾つかの選択肢が表示されると思います。
表示されたら一番上にある Start your project and connect (a.k.a Juck-in)を選択します。

Start your project and connect (a.k.a Juck-in)を選択したら次も一番上にある leiningen を選択します。
※個人の環境次第では leiningen が一番上に表示されない可能性があります。その場合は leiningen を探して選択してください。

これで REPL が起動します。
(※10秒ほどかかる場合もあります。)

REPL が起動すれば output.calva-repl というファイルが作成されて、Juck-in Doneと表示されます。
また Visual Studio Code 下部の REPL の文字がグレーから黄色?オレンジ?っぽい色に変化します。
これで REPL の起動と接続が完了となるため、思う存分REPL駆動開発ができます。
REPL の稼働確認をする
REPL の稼働確認方法には簡単なものが2つあります。
1つは output.calva-repl に直接コードを書く方法、もう一つはファイルにコードを書いて実行する方法です。
output.calva-repl でコードを評価する
output.calva-repl に記載する方法は非常に簡単で、下図のようにコードを記載して、Alt + Enter を押下するだけです。

今回は 1+1 を評価したので結果として 2 が出力されています。
これで output.calva-repl での稼働確認は完了です。
ファイルに書いたコードを評価する
実際に開発をするとなるとファイルにコードを書くので、ファイルに書いたコードを評価することの方が多いと思うのでこちらの方法は是非覚えておいてください。
まず任意のファイルを用意します。Clojure の場合は拡張子は clj です。
今回は src 下に core.clj が既に作成されていたのでそのファイルを使います。
今回も先ほどと同じように 1+1 を評価してみようと思います。
コードを書いてそのコードの一番後ろにカーソルを持ってきて、Control + Enter を押下します。
すると下図のようにコードの右側に評価結果が出力されます。また output.calva-repl にも同様に評価結果が表示されます。

これで REPL の稼働確認は完了です。
まとめ
環境構築は少し手間はかかりますが、一度構築してしまったらあとは簡単です。
REPL駆動開発は使いこなすことができると開発効率が上がります。
これからバリバリ Clojure 等コードを書いていきましょう!
みなさまの快適な開発ライフの役に立ちますと幸いです。
コメント
[…] Mac編 VS Code で Clojure を動かすために必要な準備どうも、きっしゅです。最近現場で Clojure を使う機会があり、 Visual Studio Code を使って開発をするための環境を整えました。Clojure の場合は […]
[…] Mac編 VS Code で Clojure を動かすために必要な準備どうも、きっしゅです。最近現場で Clojure を使う機会があり、 Visual Studio Code を使って開発をするための環境を整えました。Clojure の場合は […]