[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22
From: |
martin rudalics |
Subject: |
Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1 |
Date: |
Sat, 13 Oct 2007 10:40:59 +0200 |
User-agent: |
Mozilla Thunderbird 1.0 (Windows/20041206) |
> reindent-then-newline-and-indent doesn't indent properly.
>
> The command currently calls delete-horizontal-space after indenting the
> line, which in effect deletes the re-indentation since at that very
> moment the point is at the beginning of the text. If you swap the order
> of the delete-horizontal-space and indent-according-to-mode functions it
> then works as intended, like this :
`delete-horizontal-space' is needed to get rid of whitespace at the
_end_ of the old line, that is, after the position of `point' when you
invoked that command. If `reindent-then-newline-and-indent' really
deletes whitespace inserted by `indent-according-to-mode' before text on
the old line there is a bug. Can you give us a practical example where
this happens?
> (defun reindent-then-newline-and-indent ()
> "Reindent current line, insert newline, then indent the new line.
> Indentation of both lines is done according to the current major mode,
> which means calling the current value of `indent-line-function'.
> In programming language modes, this is the same as TAB.
> In some text modes, where TAB inserts a tab, this indents to the
> column specified by the function `current-left-margin'."
> (interactive "*")
> (let ((pos (point)))
> ;; Be careful to insert the newline before indenting the line.
> ;; Otherwise, the indentation might be wrong.
> (newline)
> (save-excursion
> (goto-char pos)
> (delete-horizontal-space t)
> (indent-according-to-mode))
> (indent-according-to-mode)))
The problem with this is that the first `indent-according-to-mode' may
insert whitespace at the end of an otherwise empty line. Try to invoke
your function at the beginning of a non-empty line.
- reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, nuxdoors, 2007/10/13
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1,
martin rudalics <=
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, Richard Stallman, 2007/10/14
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, nuxdoors, 2007/10/15
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, Richard Stallman, 2007/10/16
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, nuxdoors, 2007/10/16
- Message not available
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, nuxdoors, 2007/10/18
- Message not available
- Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1, Stefan Monnier, 2007/10/16