Skip to content

Commit 0697d6f

Browse files
dpsuttonbbatsov
authored andcommitted
Add insert last sexp and keymap to hold them all
1 parent a61dd84 commit 0697d6f

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

inf-clojure.el

+16-1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
125125
["Version" inf-clojure-display-version]))
126126
map))
127127

128+
(defvar inf-clojure-insert-commands-map
129+
(let ((map (define-prefix-command 'inf-clojure-insert-commands-map)))
130+
(define-key map (kbd "d") #'inf-clojure-insert-defun)
131+
(define-key map (kbd "C-d") #'inf-clojure-insert-defun)
132+
(define-key map (kbd "e") #'inf-clojure-insert-last-sexp)
133+
(define-key map (kbd "C-e") #'inf-clojure-insert-last-sexp)
134+
map))
135+
128136
(defvar inf-clojure-minor-mode-map
129137
(let ((map (make-sparse-keymap)))
130138
(define-key map "\M-\C-x" #'inf-clojure-eval-defun) ; Gnu convention
@@ -135,7 +143,7 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
135143
(define-key map "\C-c\C-r" #'inf-clojure-eval-region)
136144
(define-key map "\C-c\M-r" #'inf-clojure-reload)
137145
(define-key map "\C-c\C-n" #'inf-clojure-eval-form-and-next)
138-
(define-key map (kbd "C-c C-j") #'inf-clojure-insert-defun)
146+
(define-key map (kbd "C-c C-j") 'inf-clojure-insert-commands-map)
139147
(define-key map "\C-c\C-z" #'inf-clojure-switch-to-repl)
140148
(define-key map "\C-c\C-i" #'inf-clojure-show-ns-vars)
141149
(define-key map (kbd "C-c C-S-a") #'inf-clojure-apropos)
@@ -760,6 +768,13 @@ Indent FORM. FORM is expected to have been trimmed."
760768
(interactive)
761769
(inf-clojure-insert-and-eval (string-trim (inf-clojure--defun-at-point))))
762770

771+
(defun inf-clojure-insert-last-sexp ()
772+
"Send last sexp to process."
773+
(interactive)
774+
(inf-clojure-insert-and-eval
775+
(buffer-substring-no-properties (save-excursion (backward-sexp) (point))
776+
(point))))
777+
763778

764779
;;; Now that inf-clojure-eval-/defun/region takes an optional prefix arg,
765780
;;; these commands are redundant. But they are kept around for the user

0 commit comments

Comments
 (0)