Editors for Clojure development

The best editor to use for learning Clojure is the editor you are already familiar with (or want to learn). Ideally this will be an editor that supports clojure by providing:

  • syntax highlighting (colored parens can be useful too)
  • structural editing to ensure parens are balanced when writing and refactor code
  • running / connecting to a REPL process
  • evaluation results inline or in a repl window (fast feedback on what the code does)
  • data inspector / browser to visualise large and nested data (external tools available)

Clojure REPL driven development with Clojure aware editors

Emacs (Spacemacs), VSCode, Atom, Vim and IntelliJ are the most common Editors for Clojure and ClojureScript development. Install guides are provided for these editors.

Spacemacs is a community configuration bringing Emacs and Vim together. Spacemacs uses a mnemonic menu system that makes it easy to learn.

Spacemacs, Practicalli guides you through Clojure development, documenting with org-mode, Git version control with Magit, Vim editing modes and dozens of other features.

Neovim and Conjure

Neovim is a hyperextensible Vim-based text editor that is a drop-in replacement of Vim, implemented in less coded, fully compatible with Vim"s editing model and Vimscript extension language. Neovim also allows configuration in Lua.

Conjure is an interactive environment for evaluating code within your running program, initially targeted at Lisp languages such as Clojure.

Install and user guides

Quick try tutorial

Try the Conjure interactive :ConjureSchool tutorial without the need to install, only a recent version of neovim

curl -fL conjure.fun/school | sh

Clojure editors - neovim and conjure tutorial

:q to quit the tutorial.

References

VSpaceCode is a Spacemacs-like community configuration for Microsoft VS Code. Drive VS Code and Calva entirely from the keyboard, using easy to remember mnemonic keys for all commands and full vim-stile editing tools.

Also included edamagit, a sophisticated text based Git client (like magit for Emacs).

Currently there is a pull request to add Clojure mode key bindings that call Calva functions

VSpaceCode in action

SpaceVim is a fully featured vim experience that includes a simple Clojure development environment based around vim-fireplace

SpaceVim start screen

SpaceVim and vim-fireplace - Clojure project and REPL

Clojure Interactive Development Environment for Vim8/Neovim.

Clojure Interactive Development Environment for Vim8 / Neovim

Atom.io is flexible and simple to use editor. Chlorine is the recommended plugin for Atom.io. ProtoREPL is not actively maintained at present. The Chlorine plugin for Atom is especially recommended for ClojureScript shadow-cljs projects.

Chlorine

Chlorine animated gif

ProtoREPL

Atom.io and ProtoREPL

Proton - alternative menu and configuration approach

Proton offers a simple mnemonic menu as an alternative to the multiple keys for shortcuts in Atom.io. Proton also gives you a simple text configuration to manage all your packages quickly. Unfortunately Proton is not complete replacement of all actions.

Atom.io proton-mode demo

The Calva extension adds Clojure support to Microsoft VS Code editor.

Calva with LSP has moments of high memory use

The current version of Calva runs clojure-lsp when opening a Clojure project. The clojure-lsp process will use a noticable amount of memory, especially with a large number of dependencies in a project.

Use Calva version 2.0.136 if RAM resources are very constrained. A specific version can be selected via Extensions > Calva extension settings > Install Another Version...

Calva is an active project and the #calva channel on the Clojurians Slack community can be supportive. New versions may break, so its advisable to only upgrade to new versions when there is time to resolve potential issues.


VSCode Calva demo

Cursive may be an appropriate choice for people from a Java background who are already familiar with IntelliJ. Cursive will run static analysis of Clojure code when opening a Clojure project, as IntelliJ does with other languages.

Requires license for commercial development

There is a free license when development is not for commercial projects, however, a license must be purchased for each developer working on a commercial project.

Cursive IDE

results matching ""

    No results matching ""