summaryrefslogtreecommitdiff
path: root/lisp/indent.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2000-10-07 04:13:09 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2000-10-07 04:13:09 +0000
commit20b1d07968d9e99693ea14efb32cd65bbb176bfe (patch)
treee1e38295fe32bc8623a7646443c0f0b8f48c69d2 /lisp/indent.el
parent9ee45b2cc114ab555e45d9f030747b9c7e5a7a89 (diff)
downloademacs-20b1d07968d9e99693ea14efb32cd65bbb176bfe.tar.gz
(tab-always-indent): New var.
(indent-for-tab-command): Use it.
Diffstat (limited to 'lisp/indent.el')
-rw-r--r--lisp/indent.el17
1 files changed, 14 insertions, 3 deletions
diff --git a/lisp/indent.el b/lisp/indent.el
index 1a7193893c4..648d928a1f3 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -40,19 +40,30 @@
(defvar indent-line-function 'indent-to-left-margin
"Function to indent current line.")
+(defcustom tab-always-indent t
+ "*Controls the operation of the TAB key.
+If t, hitting TAB always just indents the current line.
+If nil, hitting TAB indents the current line if point is at the left margin
+ or in the line's indentation, otherwise it insert a `real' tab character."
+ :group 'indent
+ :type 'boolean)
+
(defun indent-according-to-mode ()
"Indent line in proper way for current major mode."
(interactive)
(funcall indent-line-function))
(defun indent-for-tab-command (&optional prefix-arg)
- "Indent line in proper way for current major mode.
+ "Indent line in proper way for current major mode or insert a tab.
+Depending on `tab-always-indent', either insert a tab or indent.
If initial point was within line's indentation, position after
the indentation. Else stay at same point in text.
-The function actually called is determined by the value of
+The function actually called to indent is determined by the value of
`indent-line-function'."
(interactive "P")
- (if (eq indent-line-function 'indent-to-left-margin)
+ (if (or (eq indent-line-function 'indent-to-left-margin)
+ (and (not tab-always-indent)
+ (> (current-column) (current-indentation))))
(insert-tab prefix-arg)
(if prefix-arg
(funcall indent-line-function prefix-arg)