= Clojure Tools
Alex Miller
2021-01-11
:type: community
:toc: macro
:icons: font

ifdef::env-github,env-browser[:outfilesuffix: .adoc]

toc::[]

Community volunteers maintain <<xref/../../guides/getting_started#,Getting Started>> documentation for a number of different tools and approaches. Some of the most commonly used tools include:

== Editors/IDEs

Editors provide Clojure support via packages and extensions. While these vary in features, all of them are sufficient for Clojure development, so choose the editor that works best for you.

=== https://www.gnu.org/software/emacs/[Emacs]

==== Packages and modes

* https://cider.mx/[CIDER] - Emacs packages for interactive programming in Clojure (REPL), including https://github.com/clojure-emacs/clojure-mode[clojure-mode]  major mode providing syntax highlighting, indentation, navigation and refactor support.
* https://github.com/clojure-emacs/inf-clojure[inf-clojure] - basic interaction with a Clojure subprocess (REPL), based on the popular inferior-lisp
* https://github.com/clojure-emacs/clojure-ts-mode[clojure-ts-mode] treesitter implementation of clojure-mode (in development)

==== Installation guides

* https://docs.cider.mx/cider/basics/installation.html[CIDER Getting Started Guide]
* https://practical.li/spacemacs/[Practicalli guide to Spacemacs & CIDER]
* https://www.braveclojure.com/basic-emacs/[Clojure for the Brave and True installation guide]

==== Distributions with Clojure support

* https://www.spacemacs.org/[Spacemacs]
* https://prelude.emacsredux.com/en/latest/[Prelude]
* https://github.com/hlissner/doom-emacs[Doom Emacs]
* https://github.com/corgi-emacs/corgi[Corgi]

=== https://code.visualstudio.com[Visual Studio Code]

==== Extensions

* https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva[Calva] extension for interactive Clojure(script) development - https://calva.io[docs], https://github.com/BetterThanTomorrow/calva[project]
* https://vspacecode.github.io/[VSpaceCode] Spacemacs like keybindings with Calva support

==== Installation guides

* https://calva.io/get-started-with-clojure/[Calva Get Started with Clojure]
* https://practical.li/vspacecode/[Practicalli VSpaceCode guide]

=== https://www.jetbrains.com/idea/[IntelliJ]

* https://cursiveclojure.com/[Cursive] Clojure(Script) IDE that understands code, advanced structural editing & refactor support (licenced software)
* https://plugins.jetbrains.com/plugin/18108-clojure-extras/[Clojure Extras plugin] - plugin with additional features for Clojure development
* https://github.com/clojure-lsp/clojure-lsp-intellij[clojure-lsp-intellij] - plugin for static analysis via clojure-lsp

=== https://neovim.io/[Neovim]

* https://github.com/Olical/conjure[Conjure] interactive environment to evaluate Clojure (and other languages)

==== Installation guides

* https://practical.li/neovim/[Practicalli guide to Neovim and Conjure]

==== Distributions with Clojure Support

* https://astronvim.com/[AstroNvim] and the https://github.com/AstroNvim/astrocommunity/tree/main/lua/astrocommunity/pack/clojure[AstroCommunity Clojure pack] (lua)
* https://github.com/Olical/magic-kit[Magic-kit] (fennel) by Conjure maintainer
* https://github.com/rafaeldelboni/cajus-nfnl[Cajus-nfnl] (fennel)

=== https://www.vim.org/[Vim]

* https://github.com/tpope/vim-fireplace[Fireplace]
* https://liquidz.github.io/vim-iced/[Vim-Iced]

=== https://www.sublimetext.com/[Sublime Text]

* https://github.com/tonsky/Clojure-Sublimed[Clojure Sublimed]
* https://tutkain.flowthing.me/[Tutkain]

=== https://pulsar-edit.dev/[Pulsar]

Community led hyper-hackable text editor, a project created after the sunset of the Atom.io editor.

* https://gitlab.com/clj-editors/atom-chlorine[Chlorine] plugin for interactive Clojure(Script) development via Socket-REPL

=== Inactive Editor projects

* https://atom.io[Atom] (sunset - replaced by https://pulsar-edit.dev/[Pulsar])
* https://github.com/LightTable/[Light Table] (archived)
* https://doc.ccw-ide.org/[Eclipse Counterclockwise] (inactive)
* https://sekao.net/nightcode/[Nightcode] (inactive)

== Dependency management

* <<xref/../../reference/clojure_cli#,clj>> is a tool for managing dependencies, running a REPL, and executing Clojure programs, built by the Clojure core team, with deps in <<xref/../../reference/deps_edn#,deps.edn>>
* https://leiningen.org/[Leiningen] - an extensible build tool that provides dependency management, REPL support, testing, packaging, deployment, and many other capabilities
* https://boot-clj.github.io/[Boot] - build tooling for Clojure: instead of a special-purpose DSL, Boot supplies abstractions and libraries you can use to automate nearly any build scenario with the full power of the Clojure language

== Library repositories and catalogs

* https://clojars.org/[Clojars] - Clojure-focused Maven repository
* http://www.clojure-toolbox.com/[Clojure Toolbox] - a categorized index of Clojure libraries

== Debuggers

* https://github.com/jpmonettas/flow-storm-debugger[FlowStorm] - A Clojure and ClojureScript debugger with many features
