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.elon your load-path and require it. - Open
clj-decompiler.elandM-x package-install-file.
Add clj-decompiler to dotspacemacs-additional-packages.
- load
clj-decompileras a hook forcider-mode. (require 'clj-decompiler)M-x clj-decompiler-decompilelike 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.