Skip to content

Latest commit

 

History

History
77 lines (51 loc) · 2.01 KB

README.org

File metadata and controls

77 lines (51 loc) · 2.01 KB

clj-java-decompiler In Emacs

https://melpa.org/packages/clj-decompiler-badge.svg

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 and M-x package-install-file.

Spacemacs

Add clj-decompiler to dotspacemacs-additional-packages.

Usage

  • load clj-decompiler as a hook for cider-mode.
  • (require 'clj-decompiler)
  • M-x clj-decompiler-decompile like you would cider-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.

Links