Skip to content

Small wrapper for clj-java-decompiler in GNU Emacs on top of Cider

License

Notifications You must be signed in to change notification settings

bsless/clj-decompiler.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

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

About

Small wrapper for clj-java-decompiler in GNU Emacs on top of Cider

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published