]> git.eshelyaron.com Git - emacs.git/commitdiff
(delphi-tab): Indent region when Transient Mark mode is enabled and
authorSimon South <ssouth@slowcomputing.org>
Fri, 11 Sep 2009 02:28:50 +0000 (02:28 +0000)
committerSimon South <ssouth@slowcomputing.org>
Fri, 11 Sep 2009 02:28:50 +0000 (02:28 +0000)
region is active; otherwise indent or insert TAB as usual.
(delphi-mode): Update description of TAB-key binding.

lisp/ChangeLog
lisp/progmodes/delphi.el

index af99ea55822c53618990b0cc9150cb7d44e832a3..33819ec6466eb9398e690939ef4c7c68255f5901 100644 (file)
        than using advertised-undo.
        * tutorial.el (tutorial--default-keys): Adjust accordingly.
 
+2009-09-10  Simon South  <ssouth@slowcomputing.org>
+
+       * progmodes/delphi.el (delphi-tab): Indent region when Transient
+       Mark mode is enabled and region is active; otherwise indent or
+       insert TAB as usual.
+       (delphi-mode): Update description of TAB-key binding.
+
 2009-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * subr.el (define-key-rebound-commands): Mark obsolete.
index 4c721fc622e637495f1f95baa1e2c77a137af5c7..c5a38607b3844663824ab0221bc489f8add1c9b2 100644 (file)
@@ -1652,14 +1652,23 @@ before the indent, the point is moved to the indent."
 
 
 (defun delphi-tab ()
-  "Indent the current line or insert a TAB, depending on the value of
-`delphi-tab-always-indents' and the current line position."
+  "Indent the region, when Transient Mark mode is enabled and the region is
+active. Otherwise, indent the current line or insert a TAB, depending on the
+value of `delphi-tab-always-indents' and the current line position."
   (interactive)
-  (if (or delphi-tab-always-indents ; We are always indenting
-          ;; Or we are before the first non-space character on the line.
-          (save-excursion (skip-chars-backward delphi-space-chars) (bolp)))
-      (delphi-indent-line)
-    (insert "\t")))
+  (cond ((use-region-p)
+         ;; If Transient Mark mode is enabled and the region is active, indent
+         ;; the entire region.
+         (indent-region (region-beginning) (region-end)))
+        ((or delphi-tab-always-indents
+             (save-excursion (skip-chars-backward delphi-space-chars) (bolp)))
+         ;; Otherwise, if we are configured always to indent (regardless of the
+         ;; point's position in the line) or we are before the first non-space
+         ;; character on the line, indent the line.
+         (delphi-indent-line))
+        (t
+         ;; Otherwise, insert a tab character.
+         (insert "\t"))))
 
 
 (defun delphi-is-directory (path)
@@ -1935,7 +1944,8 @@ This is ok since we do our own keyword/comment/string face coloring.")
 ;;;###autoload
 (defun delphi-mode (&optional skip-initial-parsing)
   "Major mode for editing Delphi code. \\<delphi-mode-map>
-\\[delphi-tab]\t- Indents the current line for Delphi code.
+\\[delphi-tab]\t- Indents the current line (or region, if Transient Mark mode
+\t  is enabled and the region is active) of Delphi code.
 \\[delphi-find-unit]\t- Search for a Delphi source file.
 \\[delphi-fill-comment]\t- Fill the current comment.
 \\[delphi-new-comment-line]\t- If in a // comment, do a new comment line.