[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