= Frequently Asked Questions

== What does CIDER stand for?

CIDER stands for **C**lojure **I**nteractive **D**evelopment **E**nvironment that **R**ocks.

== Does it really rock?

Yes.

== Is "jack-in" a reference to "Neuromancer"?

Yes.

== Is "jack-in" a reference to "The Matrix"?

Yes.

== What's the relationship between CIDER and nrepl.el?

`nrepl.el` was renamed to CIDER in version 0.3 to avoid confusion with the nREPL
server itself and to better reflect the fact that CIDER is way more than an
nREPL client for Emacs.  Additionally, the new name presents us with the
opportunity to support alternative evaluation backends (e.g. the socket REPL
introduced in Clojure 1.8) down the road.

== What's the relationship between CIDER and monroe?

https://github.com/sanel/monroe[monroe] is basically a fork of an old CIDER
version before the time we started relying on nREPL middleware.  Monroe opted
for a simpler UX, that's very REPL-centric, and uses only built-in nREPL ops (unlike CIDER, which relies on cider-nrepl heavily).

== What's the relationship between CIDER and inf-clojure?

There's pretty much no relationship, other than the fact they have the same
author (Bozhidar). https://github.com/clojure-emacs/inf-clojure[inf-clojure] provides a
REPL based on the `comint` Emacs package - you're basically running an external
REPL process inside of Emacs (there's no network connectivity involved).  The
advantage of this is that you have no external dependencies what-so-ever - you
just need some command to start a REPL process for you (e.g. `lein repl`).

== Isn't IntelliJ's Cursive the best Clojure IDE?

Cursive is pretty awesome! Depending on your programming preferences (using an IDE vs
building a custom editing experience tailored to your needs) it might be a better
option for you than CIDER.

== What's the deal with the CIDER release codenames?

The codenames are usually some of the favourite places of CIDER's head
maintainer (Bozhidar).

TIP: Bozhidar really loves Spain and the West Coast of the US, so he tends
to name really special releases with codenames related to them (e.g.
Seattle, California, Andalucia, etc).

== Why is CIDER's website using a .mx domain?

Because that's the https://emacsredux.com/blog/2018/11/17/the-perfect-domain-for-emacs-projects/[perfect domain for Emacs projects].

== Is using CIDER a good idea if I'm new to both Emacs and Clojure?

There's nothing particularly complex in CIDER itself, but getting to
grips with Emacs might be a bit challenging for some people.

Generally you can simplify the initial learning experience a lot by using some
Emacs "starter kit" and picking up a good book on Emacs
(e.g. https://www.masteringemacs.org/[Mastering Emacs]).

https://github.com/bbatsov/prelude[Prelude]
and http://spacemacs.org/[Spacemacs] are some great Emacs distributions that
you might consider using.

Prelude is maintained by the primary CIDER author himself, while
Spacemacs is an excellent option for vim refugees (as it places a heavy emphasis
on vim emulation via `evil-mode`).

== Do stable CIDER releases follow some predefined cadence?

No. Stable releases are issued when the maintainers feel a new release is
warranted. The maintainers generally aim to deliver at least 2-3 stable releases
per year.

== Does CIDER have a roadmap?

There's no precise roadmap, but there are a few major goals for the (near) future:

* improve session management (make it simpler and more predictable)
* reach parity between the functionality for ClojureScript and Clojure (as it stands today a lot of functionality is Clojure-only)
* integrate the most important refactoring functionality from our sibling project https://github.com/clojure-emacs/clj-refactor.el[clj-refactor] into CIDER.

You can find more details in our https://github.com/clojure-emacs/cider/blob/master/ROADMAP.md[roadmap document].

NOTE: If you'd like to tackle some item from the roadmap, Bozhidar will be happy to help and guide you along the way.

== Is it true that stable CIDER releases often happen around major Clojure conferences?

Yep. We want to give people a reason to talk about CIDER at such events. :-)

TIP: Inviting Bozhidar or any other core CIDER developers to present at Clojure
conferences is likely going to result in more CIDER releases,
so you should totally do this!

== How unstable is the MELPA (snapshot) build of CIDER?

It's pretty stable. Serious regressions are introduced rather rarely and are
usually fixed within a few hours. Using the MELPA build gives you early access to
new features and you're also helping the maintainers with the testing process.

== Can I downgrade CIDER from a snapshot build to the latest stable version?

Yes, you can. You just need to remove the `cider` package, pin `cider` to MELPA Stable
and reinstall it. Basically you need to do the following:

* `M-x package-remove cider`
* Add `(add-to-list 'package-pinned-packages '(cider . "melpa-stable") t)` to your Emacs config
* Restart Emacs (or reload your config)
* `M-x package-install cider`

== Can I downgrade CIDER to a specific stable version?

Emacs 29 introduced `package-vc-install` which allows you to install a package straight from
a VCS repository (e.g. Git):

    M-x package-vc-install <RET> https://github.com/clojure-emacs/cider <RET>

Refer to the documentation of `package-vc-install` for more details.

In Emacs 30 you can use `use-package` to both install the CIDER from GitHub
and configure it:

``` emacs-lisp
(use-package cider
  :vc (:url "https://github.com/clojure-emacs/cider" :rev "v1.15.0")
  )
```

NOTE: `package.el` doesn't support the concept of historical versions of a
package - there's always only one version that's available in a package
repository - the latest one. That's why you'll have to resort to a VCS revision
as a workaround for that limitation.

== Will CIDER eventually support the Clojure 1.8 socket REPL?

Maybe. Our focus remains making the most out of nREPL, but down the road
we might explore investing some time in adding support for additional
REPL servers.

TIP: There's more information about the work that needs to be done in our
https://github.com/clojure-emacs/cider/blob/master/ROADMAP.md[roadmap] document.

== Will CIDER eventually support the Clojure 1.10 prepl?

Same answer as above. One thing is certain - prepl is much more convenient for the purposes of CIDER than
the plain socket REPL.

== Is CIDER's nREPL middleware Emacs specific?

Not at all. The functionality in `cider-nrepl` is pretty editor-agnostic and is
utilized by various editor plugins. Some prominent examples would be
`vim-fireplace` and Visual Studio Code's `calva`.

== How can I see all the configuration options available in CIDER?

`M-x customize-group RET cider RET`.

== Are there any interesting CIDER add-ons worth checking out?

Sure! See xref:additional_packages.adoc[additional packages] for details.

== Where can I get help regarding CIDER?

See the xref:about/support.adoc[Support] section of the manual.

== What should I do if I run into some issues with CIDER?

Don't panic! Next step - visit the xref:troubleshooting.adoc[Troubleshooting] section of
the manual.

== How can I help the project?

There are many ways in which you can help CIDER

* Donate funds
* Work on improving the documentation
* Solve open issues
* File bug reports and suggestions for improvements
* Promote CIDER via blog posts or at meetups and conferences
* Invite members of the CIDER team to speak about CIDER at meetups and conferences
