Skip to content

Quirks#

Here's a shocker for ya': Calva isn't perfect. 😄

There are quirks and things that flat out do not work. We'll try to collect info about such things here, providing workarounds when available (or, rather, known to us).

Test features not available with ClojureScript#

Currently cider-nrepl does not provide its test functionality for ClojureScript code. Please consider contributing to fixing that.

Using with Parinfer#

See Using with Parinfer

Calva and the VIM Extension#

See Using Calva with the VIM Extension.

”Command not found” Errors on Jack-in#

Jack-in starts by running a command in a new terminal. You will need the commands used installed on your computer:

  • clojure for tools.deps/deps.edn
  • lein for Leiningen
  • npx for shadow-cljs
  • gradlew for Gradle (in your project)

Also, in some circumstances VS Code is not spawned from a shell with the environment variables, especially $PATH, which might mean that even though you have the tools installed, they are not found when VS Code/Calva tries to execute them. To fix this you will need to do one of these two things:

  1. Figure out from where VS Code is spawned, and make sure the $PATH there includes the directory with the needed binary.
  2. Start VS Code from a terminal where the $PATH is correctly configured. (Using the code command.)

See this issue for more clues on this problem.

Strange linting errors?#

This is not really a quirk, and most linting errors are not strange when you learn about why they are there. Calva does not do any linting, btw, see also linting.

Consider uninstalling these extensions#

Without Calva, many users install other nifty extensions (some of which are old pieces of Calva) that help with this or that problem. It might sometimes work together with Calva, sometimes not. Here's a list of some common extensions you should consider to at least disable:

  • Strict Paredit - Calva Paredit has evolved a lot since that version
  • Calva-fmt/Calva Formatter - Same here, evolution
  • Clojure Warrior - Calva includes it, in a much evolved way
  • Parinfer - This one you can actually keep, at some cost, see Using Calva with Parinfer.