# HG changeset patch # User Katsumi Yamaoka # Date 1282178146 0 # Node ID 6e14b22d0a4926738af32d0e88485868053e99c8 # Parent 529971ebf9b150abd1fef93183ad81f531a90bd6# Parent dce0738d09efc96b8848888e80cd0d17c73748df Merge from mainline. diff -r 529971ebf9b1 -r 6e14b22d0a49 lisp/ChangeLog --- a/lisp/ChangeLog Wed Aug 18 22:46:56 2010 +0000 +++ b/lisp/ChangeLog Thu Aug 19 00:35:46 2010 +0000 @@ -1,5 +1,8 @@ 2010-08-18 Stefan Monnier + * simple.el (prog-mode-map): New var. + (prog-indent-sexp): New command. + * progmodes/octave-mod.el (octave-mode-menu): Make toggle buttons. * progmodes/prolog.el (smie): Require. diff -r 529971ebf9b1 -r 6e14b22d0a49 lisp/simple.el --- a/lisp/simple.el Wed Aug 18 22:46:56 2010 +0000 +++ b/lisp/simple.el Thu Aug 19 00:35:46 2010 +0000 @@ -424,6 +424,19 @@ ;; Major mode meant to be the parent of programming modes. +(defvar prog-mode-map + (let ((map (make-sparse-keymap))) + (define-key map [?\C-\M-q] 'prog-indent-sexp) + map) + "Keymap used for programming modes.") + +(defun prog-indent-sexp () + "Indent the expression after point." + (interactive) + (let ((start (point)) + (end (save-excursion (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." (set (make-local-variable 'require-final-newline) mode-require-final-newline)