emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] /srv/bzr/emacs/trunk r112564: * progmodes/octave.el (o


From: Leo Liu
Subject: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r112564: * progmodes/octave.el (octave-mode-map): Bind octave-indent-defun to
Date: Tue, 14 May 2013 09:04:44 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (OS X 10.8.3)

On 2013-05-14 02:50 +0800, Stefan Monnier wrote:
>> +    ;; C-c C-q is also used by cc modes for similar command
>
> FWIW, CC-mode nowadays is not very "standard" as Emacs modes go.
>
>> +    (octave-mode-map): Bind octave-indent-defun to C-c C-q instead of
>> +    C-M-q.
>
> Sounds fine, though since C-M-q is bound in prog-mode-map to
> prog-indent-sexp.
>
>
>         Stefan

I cannot find a suitable key for indent-defun-like commands. So how
about something along these lines i.e. make C-u C-M-q does the defun
indent?

diff --git a/lisp/simple.el b/lisp/simple.el
index 42253645..0a9a4d15 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -380,12 +380,16 @@ (defvar prog-mode-map
     map)
   "Keymap used for programming modes.")
 
-(defun prog-indent-sexp ()
+(defun prog-indent-sexp (&optional defun)
   "Indent the expression after point."
-  (interactive)
-  (let ((start (point))
-        (end (save-excursion (forward-sexp 1) (point))))
-    (indent-region start end nil)))
+  (interactive "P")
+  (save-excursion
+    (when defun
+      (end-of-line)
+      (beginning-of-defun))
+    (let ((start (point))
+         (end (progn (forward-sexp 1) (point))))
+      (indent-region start end nil))))
 
 (define-derived-mode prog-mode fundamental-mode "Prog"
   "Major mode for editing programming language source code."


-- 
Sent from my Emacs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]