]> git.eshelyaron.com Git - emacs.git/commitdiff
New user commands, similar to what is available in ESS
authorSam Steingold <sds@gnu.org>
Tue, 8 Jul 2014 15:35:29 +0000 (11:35 -0400)
committerSam Steingold <sds@gnu.org>
Tue, 8 Jul 2014 15:35:29 +0000 (11:35 -0400)
* lisp/progmodes/inf-lisp.el (lisp-eval-paragraph, lisp-eval-form-and-next):
New user commands.

lisp/ChangeLog
lisp/progmodes/inf-lisp.el

index ee5b6e2767b48100981776d51d6f2452f2325eed..ca7077b3d55d7320e8eed935612cac3fb6186a42 100644 (file)
@@ -1,3 +1,8 @@
+2014-07-08  Sam Steingold  <sds@gnu.org>
+
+       * progmodes/inf-lisp.el (lisp-eval-paragraph, lisp-eval-form-and-next):
+       New user commands.
+
 2014-07-08  Juri Linkov  <juri@jurta.org>
 
        * vc/vc-annotate.el (vc-annotate-background-mode): New defcustom.
index 5419a6dbdb82254138d5058b35b7531ba413a7a8..ba64ae318444307e168cee451623555bb67aa73e 100644 (file)
@@ -112,6 +112,8 @@ mode.  Default is whitespace followed by 0 or 1 single-letter colon-keyword
 (define-key lisp-mode-map "\C-x\C-e" 'lisp-eval-last-sexp) ; Gnu convention
 (define-key lisp-mode-map "\C-c\C-e" 'lisp-eval-defun)
 (define-key lisp-mode-map "\C-c\C-r" 'lisp-eval-region)
+(define-key lisp-mode-map "\C-c\C-n" 'lisp-eval-form-and-next)
+(define-key lisp-mode-map "\C-c\C-p" 'lisp-eval-paragraph)
 (define-key lisp-mode-map "\C-c\C-c" 'lisp-compile-defun)
 (define-key lisp-mode-map "\C-c\C-z" 'switch-to-lisp)
 (define-key lisp-mode-map "\C-c\C-l" 'lisp-load-file)
@@ -311,6 +313,14 @@ of `inferior-lisp-program').  Runs the hooks from
 ;;;###autoload
 (defalias 'run-lisp 'inferior-lisp)
 
+(defun lisp-eval-paragraph (&optional and-go)
+  "Send the current paragraph to the inferior Lisp process.
+Prefix argument means switch to the Lisp buffer afterwards."
+  (interactive "P")
+  (save-excursion
+    (mark-paragraph)
+    (lisp-eval-region (point) (mark) and-go)))
+
 (defun lisp-eval-region (start end &optional and-go)
   "Send the current region to the inferior Lisp process.
 Prefix argument means switch to the Lisp buffer afterwards."
@@ -361,6 +371,14 @@ Prefix argument means switch to the Lisp buffer afterwards."
   (interactive "P")
   (lisp-eval-region (save-excursion (backward-sexp) (point)) (point) and-go))
 
+(defun lisp-eval-form-and-next ()
+  "Send the previous sexp to the inferior Lisp process and move to the next one."
+  (interactive "")
+  (while (not (zerop (car (syntax-ppss))))
+    (up-list))
+  (lisp-eval-last-sexp)
+  (forward-sexp))
+
 (defun lisp-compile-region (start end &optional and-go)
   "Compile the current region in the inferior Lisp process.
 Prefix argument means switch to the Lisp buffer afterwards."