1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 14:10:47 -08:00

(tab-always-indent): New var.

(indent-for-tab-command): Use it.
This commit is contained in:
Stefan Monnier 2000-10-07 04:13:09 +00:00
parent 9ee45b2cc1
commit 20b1d07968
2 changed files with 18 additions and 4 deletions

View file

@ -1,4 +1,7 @@
2000-10-06 Stefan Monnier <monnier@cs.yale.edu>
2000-10-07 Stefan Monnier <monnier@cs.yale.edu>
* indent.el (tab-always-indent): New var.
(indent-for-tab-command): Use it.
* files.el (set-auto-mode): Ignore unknown -*- mode -*- rather than
raise an error. This way it can still defaults to a sane value.

View file

@ -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)