GNU/Linux
•
screen-256color
•
zsh
35564 views
A fancy Clojure REPL, to get it yourself, do the following:
In your .clojure/deps.edn add the following alias:
:aliases {:repl {:extra-deps {com.bhauman/rebel-readline {:mvn/version "RELEASE"}
com.gfredericks/user.clj {:mvn/version "RELEASE"}
org.clojure/core.async {:mvn/version "RELEASE"}
org.clojure/core.logic {:mvn/version "RELEASE"}
org.clojure/test.check {:mvn/version "RELEASE"}
com.clojure-goes-fast/clj-java-decompiler {:mvn/version "RELEASE"}
com.clojure-goes-fast/clj-memory-meter {:mvn/version "RELEASE"}
com.clojure-goes-fast/clj-async-profiler {:mvn/version "RELEASE"}
com.clojure-goes-fast/jvm-alloc-rate-meter {:mvn/version "RELEASE"}
com.clojure-goes-fast/jvm-hiccup-meter {:mvn/version "RELEASE"}
io.aviso/pretty {:mvn/version "RELEASE"}
mvxcvi/puget {:mvn/version "RELEASE"}
com.hypirion/clj-xchart {:mvn/version "RELEASE"}
org.clojure/clojure {:mvn/version "RELEASE"}
generateme/fastmath {:mvn/version "RELEASE"}
clj-commons/pomegranate {:mvn/version "RELEASE"}}
:main-opts ["-m" "rebel-readline.main"]}
And in .clojure/user.clj add the following: https://gist.github.com/didibus/b88a0d458601e06d63d0ca430962ff42
Finally, in your .zshrc or .bashrc file add:
function clj() {
if [[ -z $@ ]]
then
command clojure -A:repl
else
command clj $@
fi
}
So now when you type clj you get a super fancy repl with colorized output, friendly error messages, auto-complete, doc showing, multi-line support and the most common namespaces pre-required as well as useful functions you can use with (req-...) to lazy require more useful namespaces. There is one called (req-deps) which requires pomegranate and defines add-lein-deps that can then be used to dynamically bring in more dependencies to the REPL as well.