= Babashka

== Overview

Babashka is highly compatible with Clojure, so it works with CIDER out of the box.

== Usage

All you need to do
is start its bundled nREPL server:

  $ bb --nrepl-server

And connect to it afterwards using kbd:[C-c C-x c j] (`cider-connect-clj`).

Babashka's nREPL server supports all core nREPL operations, plus code completion, so you'll get all of
CIDER's basic functionality with it.

NOTE: Depending on your CIDER version you might get some warnings about missing Clojure/nREPL versions. You can safely
ignore those.

Starting with CIDER 1.2, `cider-jack-in-clj` works with Babashka projects that are using `bb.edn`.

== Differences with Clojure

There are a few differences between Babashka and Clojure that you should keep in mind:

* Built-in vars (e.g. `clojure.core/map`) don't have definition location metadata. In practice this means you can't
navigate to their definitions in CIDER.
* The `javadoc` (`clojure.java.javadoc/javadoc`) REPL utility function is not currently available in Babashka.

== Additional Resources

* https://github.com/borkdude/babashka/blob/master/doc/repl.md#nrepl[Babashka's nREPL Documentation]
* https://github.com/babashka/babashka.nrepl[babashka.nrepl]
