Decompile your Clojure expressions from withing GNU Emacs.
clj-java-decompiler
is an awesome and useful utility.
What would be even more awesome is if we could invoke it interactively from within Emacs and examine the results just like we do macroexpansion.
A couple of hours of hacking later, having eaten a bit more of the world, we can.
M-x package-install [RET] clj-decompiler [RET]
If the package was not found, refresh the package list via:
M-x package-refresh-contents [RET]
Either:
- Put
clj-decompiler.el
on your load-path and require it. - Open
clj-decompiler.el
andM-x package-install-file
.
Add clj-decompiler
to dotspacemacs-additional-packages
.
- load
clj-decompiler
as a hook forcider-mode
. (require 'clj-decompiler)
M-x clj-decompiler-decompile
like you wouldcider-macroexpand
.
(add-hook
'cider-mode-hook
(lambda ()
(eval-after-load 'cider
'(progn
(require 'clj-decompiler)
(clj-decompiler-setup)))))
(spacemacs|forall-clojure-modes m
(spacemacs/set-leader-keys-for-major-mode m
"ed" 'clj-decompiler-decompile)
(spacemacs/set-leader-keys-for-major-mode m
"eD" 'clj-decompiler-disassemble))
- All of CIDER’s maintainers, past and present. You made this possible and easy.
- Alexander Yakushev for
clj-java-decompiler
, and many other awesome libraries.
- Dan Sutton who helped me out on Clojurian’s Slack.