CIDER is the Clojure(Script) Interactive Development Environment
that Rocks!
CIDER extends Emacs with support for interactive programming in Clojure. The
features are centered around cider-mode
, an Emacs minor-mode that complements
clojure-mode. While clojure-mode
supports editing Clojure source files,
cider-mode
adds support for interacting with a running Clojure process for
compilation, debugging, definition and documentation lookup, running tests and
so on.
Please consider supporting financially its ongoing development.
Quickstart
The instructions that follow are meant to get you from zero to a running CIDER
REPL in under 5 minutes. See the
user manual for (way) more
details.
Installation
The recommended way to install CIDER is via package.el
- the built-in package
manager in Emacs.
CIDER is available on the two major package.el
community
maintained repos -
MELPA Stable
and MELPA.
You can install CIDER with the following command:
M-x package-install
RET cider
RET
Launch an nREPL server and client from Emacs
Simply open in Emacs a file belonging to your lein
or boot
project (like
foo.clj
) and type M-x cider-jack-in
. This will start an nREPL
server with all the project dependencies loaded in and CIDER will automatically
connect to it.
Alternatively you can use C-u M-x cider-jack-in
to specify the name
of a lein
or boot
project, without having to visit any file in it.
In Clojure(Script) buffers the command cider-jack-in
is bound to
C-c C-x (C-)j.
Connect to a running nREPL server
You can go to your project's directory in a terminal and type there
(assuming you're using Leiningen that is):
$ lein repl
Or with Boot:
$ boot repl -s wait
Alternatively you can start nREPL either manually or by the facilities provided
by your project's build tool (Gradle, Maven, etc).
After you get your nREPL server running go back to Emacs. Typing there M-x
cider-connect
will allow you to connect to the running nREPL server.
In Clojure(Script) buffers the command cider-connect
is bound to
C-c C-x (C-)c (C-)j and the command cider-connect-cljs
is bound to
C-c C-x (C-)c (C-)s.
Diving Deeper
CIDER packs a ton of functionality and you really want to be familiar with it,
so you can fully empower your workflow. The best way to get acquainted with all
available features is to go over the entire
CIDER manual.
If you're into video lessons, you might also check out
this intro to CIDER demo as well.
Changelog
An extensive changelog is available here.
Team
The Core Team
The direction of the project is being stewarded by the CIDER core team. This
group of long-term contributors manage releases, evaluate pull-requests, and
does a lot of the groundwork on major new features.
- Bozhidar Batsov (author & head maintainer)
- Vitalie Spinu
- Michael Griffiths
- Lars Andersen
CIDER Alumni
In addition, we'd like to extend a special thanks the following retired CIDER
core team members. Lovingly known as The Alumni:
- Tim King (original author)
- Phil Hagelberg
- Hugo Duncan
- Steve Purcell
- Artur Malabarba
- Jeff Valk
Release policy
We’re following SemVer (as much as one can be
following it when the major version is 0). At this point bumps of the
minor (second) version number are considered major releases and always
include new features or significant changes to existing features. API
compatibility between major releases is not a (big) concern (although we try
to break the API rarely and only for a good reason).
The development cycle for the next major
release starts immediately after the previous one has been
shipped. Bugfix/point releases (if any) address only serious bugs and
never contain new features.
The versions of CIDER and cider-nrepl
are always kept in sync. If you're
tracking the master
branch of CIDER, you should also be tracking the master
branch of cider-nrepl
.
Logo
CIDER's logo was created by @tapeinosyne. You can find
the logo in various formats
here.
The logo is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.
Homepage
CIDER's homepage https://cider.mx is in the gh-pages
branch of this repository and is deployed
automatically when changes are made to it.
It's just a single index.html
file and a bit of Bootstrap 4. Contributions to it are very welcome!
Funding
While CIDER is free software and will always be, the project would benefit immensely from some funding.
Raising a monthly budget of a couple of thousand dollars would make it possible to pay people to work on
certain complex features, fund other development related stuff (e.g. hardware, conference trips) and so on.
Raising a monthly budget of over $5000 would open the possibility of someone working full-time on the project
which would speed up the pace of development significantly.
We welcome both individual and corporate sponsors! We also offer a wide array of funding channels to account
for your preferences (although currently Open Collective is our preferred funding platform).
If you're working in a company that's making significant use of CIDER we'd appreciate it if you suggest to your company
to become a CIDER sponsor.
You can support the development of CIDER, clojure-mode and inf-clojure via
Open Collective,
Salt,
Patreon and
PayPal.
Open Collective Backers
Open Collective Sponsors
Become a sponsor and get your logo on our README on Github with a link to your
site. [Become a sponsor]
License
Copyright © 2012-2019 Tim King, Phil Hagelberg, Bozhidar Batsov, Artur Malabarba and
contributors.
Distributed under the GNU General Public License, version 3