Skip to content

Commit 9364f48

Browse files
committed
Extract the refactoring commands into a separate keymap
1 parent 60951fb commit 9364f48

File tree

2 files changed

+41
-28
lines changed

2 files changed

+41
-28
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* New interactive command `clojure-mode-report-bug`.
88
* New interactive command `clojure-view-guide`.
99
* New interactive command `clojure-view-reference-section`.
10+
* Make the refactoring keymap prefix customizable via `clojure-refactor-map-prefix`.
1011

1112
## 5.5.2 (2016-08-03)
1213

clojure-mode.el

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -191,38 +191,50 @@ Out-of-the box clojure-mode understands lein, boot and gradle."
191191
(and (listp value)
192192
(cl-every 'stringp value))))
193193

194+
(defcustom clojure-refactor-map-prefix (kbd "C-c C-r")
195+
"Clojure refactor keymap prefix."
196+
:group 'clojure
197+
:type 'string
198+
:package-version '(clojure-mode . "5.6.0"))
199+
200+
(defvar clojure-refactor-map
201+
(let ((map (make-sparse-keymap)))
202+
(define-key map (kbd "C-t") #'clojure-thread)
203+
(define-key map (kbd "t") #'clojure-thread)
204+
(define-key map (kbd "C-u") #'clojure-unwind)
205+
(define-key map (kbd "u") #'clojure-unwind)
206+
(define-key map (kbd "C-f") #'clojure-thread-first-all)
207+
(define-key map (kbd "f") #'clojure-thread-first-all)
208+
(define-key map (kbd "C-l") #'clojure-thread-last-all)
209+
(define-key map (kbd "l") #'clojure-thread-last-all)
210+
(define-key map (kbd "C-a") #'clojure-unwind-all)
211+
(define-key map (kbd "a") #'clojure-unwind-all)
212+
(define-key map (kbd "C-p") #'clojure-cycle-privacy)
213+
(define-key map (kbd "p") #'clojure-cycle-privacy)
214+
(define-key map (kbd "C-(") #'clojure-convert-collection-to-list)
215+
(define-key map (kbd "(") #'clojure-convert-collection-to-list)
216+
(define-key map (kbd "C-'") #'clojure-convert-collection-to-quoted-list)
217+
(define-key map (kbd "'") #'clojure-convert-collection-to-quoted-list)
218+
(define-key map (kbd "C-{") #'clojure-convert-collection-to-map)
219+
(define-key map (kbd "{") #'clojure-convert-collection-to-map)
220+
(define-key map (kbd "C-[") #'clojure-convert-collection-to-vector)
221+
(define-key map (kbd "[") #'clojure-convert-collection-to-vector)
222+
(define-key map (kbd "C-#") #'clojure-convert-collection-to-set)
223+
(define-key map (kbd "#") #'clojure-convert-collection-to-set)
224+
(define-key map (kbd "C-i") #'clojure-cycle-if)
225+
(define-key map (kbd "i") #'clojure-cycle-if)
226+
(define-key map (kbd "n i") #'clojure-insert-ns-form)
227+
(define-key map (kbd "n h") #'clojure-insert-ns-form-at-point)
228+
(define-key map (kbd "n u") #'clojure-update-ns)
229+
(define-key map (kbd "n s") #'clojure-sort-ns))
230+
"Keymap for Clojure refactoring commands.")
231+
(fset 'clojure-refactor-map clojure-refactor-map)
232+
194233
(defvar clojure-mode-map
195234
(let ((map (make-sparse-keymap)))
196235
(define-key map (kbd "C-:") #'clojure-toggle-keyword-string)
197236
(define-key map (kbd "C-c SPC") #'clojure-align)
198-
(define-key map (kbd "C-c C-r C-t") #'clojure-thread)
199-
(define-key map (kbd "C-c C-r t") #'clojure-thread)
200-
(define-key map (kbd "C-c C-r C-u") #'clojure-unwind)
201-
(define-key map (kbd "C-c C-r u") #'clojure-unwind)
202-
(define-key map (kbd "C-c C-r C-f") #'clojure-thread-first-all)
203-
(define-key map (kbd "C-c C-r f") #'clojure-thread-first-all)
204-
(define-key map (kbd "C-c C-r C-l") #'clojure-thread-last-all)
205-
(define-key map (kbd "C-c C-r l") #'clojure-thread-last-all)
206-
(define-key map (kbd "C-c C-r C-a") #'clojure-unwind-all)
207-
(define-key map (kbd "C-c C-r a") #'clojure-unwind-all)
208-
(define-key map (kbd "C-c C-r C-p") #'clojure-cycle-privacy)
209-
(define-key map (kbd "C-c C-r p") #'clojure-cycle-privacy)
210-
(define-key map (kbd "C-c C-r C-(") #'clojure-convert-collection-to-list)
211-
(define-key map (kbd "C-c C-r (") #'clojure-convert-collection-to-list)
212-
(define-key map (kbd "C-c C-r C-'") #'clojure-convert-collection-to-quoted-list)
213-
(define-key map (kbd "C-c C-r '") #'clojure-convert-collection-to-quoted-list)
214-
(define-key map (kbd "C-c C-r C-{") #'clojure-convert-collection-to-map)
215-
(define-key map (kbd "C-c C-r {") #'clojure-convert-collection-to-map)
216-
(define-key map (kbd "C-c C-r C-[") #'clojure-convert-collection-to-vector)
217-
(define-key map (kbd "C-c C-r [") #'clojure-convert-collection-to-vector)
218-
(define-key map (kbd "C-c C-r C-#") #'clojure-convert-collection-to-set)
219-
(define-key map (kbd "C-c C-r #") #'clojure-convert-collection-to-set)
220-
(define-key map (kbd "C-c C-r C-i") #'clojure-cycle-if)
221-
(define-key map (kbd "C-c C-r i") #'clojure-cycle-if)
222-
(define-key map (kbd "C-c C-r n i") #'clojure-insert-ns-form)
223-
(define-key map (kbd "C-c C-r n h") #'clojure-insert-ns-form-at-point)
224-
(define-key map (kbd "C-c C-r n u") #'clojure-update-ns)
225-
(define-key map (kbd "C-c C-r n s") #'clojure-sort-ns)
237+
(define-key map clojure-refactor-map-prefix 'clojure-refactor-map)
226238
(easy-menu-define clojure-mode-menu map "Clojure Mode Menu"
227239
'("Clojure"
228240
["Toggle between string & keyword" clojure-toggle-keyword-string]

0 commit comments

Comments
 (0)