Skip to content

Calva: Clojure & Clojurescript interactive programming made easy - Evaluate code, run tests, navigate to definitions, see docs, interactive REPLs, etcetera.

License

Notifications You must be signed in to change notification settings

cfehse/calva

 
 

Repository files navigation

Calva: Clojure & ClojureScript with Visual Studio Code

Calva logo

Welcome to Calva, an integrated REPL powered environment for enjoyable and productive Clojure and ClojureScript in Visual Studio Code. It includes inline code evaluation, Paredit, a Clojure formatter, a test runner, Clojure syntax highlighting, and more. Much of the power is harvested from the produce of The Orchard.

Calva is short for Calvados, a liquid gifted to humanity from God. It is distilled from Cider.

Why Calva?

From The Tao of Calva:

Calva's raison d´être is to provide Visual Studio Code users with an easy to use and productive environment for Clojure and ClojureScript development.

From the same page you can also learn that we want Calva to be a good choice for VS Code users asking:

How do I use my favorite code editor for Clojure development?

We also hope that Calva will contribute to making it easier to pick up Clojure as a new language.

Getting Started with Calva

Go to the documentation to find info on how to connect Calva to your project and start evaluating code and such. The documentation is built from the same repository as Calva. So if you know about workarounds or gotchas or anything that is good to know about when using Calva, please edit the appropriate page (or create a new page) by PR.

Features

  • Syntax highlighting, plus:
    • Rainbow parens
    • Highlights misplaced brackets
    • LISP friendly bracket matching
    • Ignore form (#_) dimming and (comment) form highlighting
  • Code formatting and autoindent according to https://github.com/bbatsov/clojure-style-guide
  • Structural Editing (via Paredit)
  • Linting
  • Intellisense
  • Go to / Peek at definition
  • View docstrings on hover
  • View function signatures on hover
  • Support for Clojure tools/deps, Leiningen, shadow-cljs, lein-figwheel, and Figwheel Main, and Nashorn repls. (For Boot, only Connect scenarios work, there is no Jack-in yet.)
  • Your Custom Connect Sequences, including fully customized CLJS REPLs.
  • Switch the CLJS REPL connection between your different CLJS builds at will.
  • When editing cljc files, easily choose if REPL commands should go to the clj or cljs REPL by clicking the cljc/clj[s] indicator in the status bar.
  • And more

Demo: Peek at definitions, etcetera:

Features

Demo: switch between clj and cljs repl sessions for cljc files:

CLJC repl switching

How to contribute

I'm glad you are reading this section!

Calva is built using a combination of TypeScript and ClojureScript. The ClojureScript part uses the shadow-cljs toolchain. See the How to Contribute page on the wiki for instructions on how to hack on Calva.

The Calva Team

Many people have contributed to Calva. Here are the ones who have engaged in the project as such.

Current Maintainers:

Alumni

Happy coding ❤️

We hope you will find good use for Calva. Please let us know what you think. PRs welcome, file an issue or chat us up in the #calva-dev channel in the Clojurians Slack.

About

Calva: Clojure & Clojurescript interactive programming made easy - Evaluate code, run tests, navigate to definitions, see docs, interactive REPLs, etcetera.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 82.0%
  • Clojure 13.8%
  • CSS 2.1%
  • JavaScript 1.5%
  • Other 0.6%