VS CodeのCalvaでNo supportedエラーが発生した時の対処法

最近は Visual Studio Code を使って Clojure を書いているのですが、Visual Studio Code を開いたタイミング、もしくはソースコードのフォルダーを開いたタイミングで、

No supported project types detected. Maybe try starting your project manually and use the Connect command?

というエラーに直面することが多々ありました。

最初はそこまで気にしていなかったのですが、何度か出て REPL が起動できなかったりと開発に支障がでることもありました。

そうなるとさすがに放置は良くないなって思ったので、これを機に原因、解決策を調べて、備忘録として記事にしました。

同様のエラーが発生して困っている方は是非参考にしてください。

VS CodeのCalvaでNo supportedエラーが発生した時の対処法

原因

この No supported … エラーですが、調べてみると Calva の仕様によるもので、非常に単純なエラーであることがわかりました。

原因は、VS Code で開いたディレクトリの一番上の階層に project.clj もしくは deps.edn のどちらかが配置されていないことが原因です。

別の言い方をすると project.clj もしくは deps.edn が配置されている階層を VS Code で開いていないということが原因です。

実際に Calva のユーザーガイドでも注記されています。

Connect Calva to Your Project - Calva User Guide
Learn how to use Calva to boost your Clojure and ClojureScript coding in VS Code.

超ざっくりと意訳すると「ファイルがないと REPL が起動できないですよー」って感じです。

ファイルがないと Calva がそのディレクトリを Clojure のプロジェクトとして認識しないのだと思います。

故に No supported … エラーが発生したり、 REPL の起動ができなかったりするのだと思います。

原因がわかればあとは解決するだけです。

No supported … エラーを解決する

このエラーの解決方法は非常に簡単です。

ファイルが存在しないことがエラーの原因なのでファイルのあるフォルダを開く、もしくはファイルを作成すればいいだけです。

もし開発で必要なファイルが限られているためいつもより深い階層のフォルを開いている方は、諦めて Calva が必要とされているファイルが配置されているであろう、プロジェクトのルートのフォルダーを開き直してください。

一方でまだファイルを作成していない人は作成するだけです。

作成方法がわからない、もしくはファイルの中に何を書いたらいいのかわからないって方下記のコードをコピーして貼り付けちゃってください。
※プロジェクト名は自分が利用するプロジェクトの名前と一致させる必要があります。下のコードの場合だと1行目と7行目の sample_clojure_app がプロジェクト名に該当します。

(defproject sample_clojure_app "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
            :url "https://www.eclipse.org/legal/epl-2.0/"}
  :dependencies [[org.clojure/clojure "1.10.1"]]
  :repl-options {:init-ns sample-clojure-app.core})

上記のコードは leiningen のテンプレート機能を利用して自動で生成したものです。

完全に Clojure 初心者で試しに触ってみようとしている人の場合はいっそのこと leiningen のテンプレート機能を使ってプロジェクトを作成した方が後々楽かもしれません。

leiningen のテンプレート機能を利用してプロジェクトを作成したい場合は下記の記事で少し触れているので是非参考にしてください。

これらの対応をすればエラーは解消して REPL の起動も問題なくできるようになります。

まとめ

いかがでしたでしょうか?

Clojure 系の記事はどうしても英語の記事が多いですし、Calva に関する記事も英語のものが多いので意外と問題解決に苦労すると思います。

この記事を参考にして無事に問題が解決していると嬉しいです。

皆様の楽しい開発ライフの役に立ちますと幸いです。

Clojure
きっしゅをフォローする
Ibukish Lab+

コメント

タイトルとURLをコピーしました