clj-java-decompiler In Emacs
Decompile your Clojure expressions from withing GNU Emacs.
Rationale
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.
Install
package.el
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]
Manual
Either:
- Put
clj-decompiler.el
on your load-path and require it. - Open
clj-decompiler.el
andM-x package-install-file
.
Spacemacs
Add clj-decompiler
to dotspacemacs-additional-packages
.
Usage
- 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
(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))
Credit
- 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.
Thanks
- Dan Sutton who helped me out on Clojurian’s Slack.