A simple example of how to setup REBL to run within lein repl
.
Update your project.clj file to use Clojure 1.10.0-RC2 or higher, core async, and add the REBL jar to your resource paths:
(defproject rebl-test "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.10.0-RC2"]
[org.clojure/core.async "0.4.490"]]
:resource-paths ["resources/REBL-0.9.108.jar"]
:main ^:skip-aot rebl-test.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})
lein repl
to start an nrepl server and client.Once the Leiningen repl loads, run the following:
(require '[cognitect.rebl :as rebl])
(rebl/ui)
Example:
nREPL server started on port 57844 on host 127.0.0.1 - nrepl://127.0.0.1:57844
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.10.0-RC2
Java HotSpot(TM) 64-Bit Server VM 1.8.0_144-b01
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e
rebl-test.core=> (require '[cognitect.rebl :as rebl])
nil
rebl-test.core=> (rebl/ui)
nil
The REBL UI should display and you are good to go :smile: :beer:
You may want to only include access to the REBL jar while in development. Below is one of many ways to achieve this:
(defproject rebl-test "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.9.0"]]
:main ^:skip-aot rebl-test.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}
:dev [:project/dev :profiles/dev]
:project/dev {:dependencies [[org.clojure/clojure "1.10.0-RC2"]
[org.clojure/core.async "0.4.490"]]
:resource-paths ["env/dev/resources"]}})
TIP: If you replace :dev profile with :repl the configuration only applies when running
lein repl
. Read the lein profiles docs for more configuration options.
lein localrepo install REBL-0.9.108.jar com.cognitect/rebl 0.9.108
[com.cognitect/rebl "0.9.108"]