https://github.com/magnars/clj-refactor.el.git
git clone 'git://github.com/magnars/clj-refactor.el.git'
clj-refactor
provides refactoring support for clojure projects.
Here's a small teaser, helping you add a missing libspec:
I highly recommend installing clj-refactor through elpa.
It's available on marmalade and melpa:
M-x package-install clj-refactor
(require 'clj-refactor)
(defun my-clojure-mode-hook ()
(clj-refactor-mode 1)
(yas-minor-mode 1) ; for adding require/use/import
(cljr-add-keybindings-with-prefix "C-c C-m"))
(add-hook 'clojure-mode-hook #'my-clojure-mode-hook)
The more advanced refactorings require our nREPL middleware refactor-nrepl.
To install it add the following, either in your project's project.clj
or in the :user
profile found at ~/.lein/profiles.clj
:
:plugins [[refactor-nrepl "1.1.0"]]
That's it!
Check out the much longer installation page in the wiki for a less opinionated approach.
All functions in clj-refactor have a two-letter mnemonic shortcut. E.g. rs
for cljr-rename-symbol
. Given the prefix choice in the example setup you'd call this function by hitting C-c C-m rs
See the wiki for a complete list of available refactorings, demonstrations and customization points.
An extensive changelog is available here.
Yes, please do. There's a suite of tests, so remember to add tests for your specific feature, or I might break it later.
You'll find the repo at:
https://github.com/clojure-emacs/clj-refactor.el
To fetch the test dependencies, install cask if you haven't already, then:
$ cd /path/to/clj-refactor
$ cask
Run the tests with:
$ ./run-tests.sh
Before submitting a patch or a pull request make sure all tests are passing and that your patch is in line with the contribution guidelines.
Thanks to everyone who's contributed so far!
Copyright © 2012-2015 Magnar Sveen Copyright © 2014-2015 Magnar Sveen, Lars Andersen, Benedek Fazekas
Author: Magnar Sveen mailto:magnars@gmail.com Lars Andersen mailto:expez@expez.com Benedek Fazekas Keywords: convenience, clojure, cider
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.