all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: nuxdoors@cegetel.net
Cc: bug-gnu-emacs@gnu.org
Subject: Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1
Date: Sat, 13 Oct 2007 10:40:59 +0200	[thread overview]
Message-ID: <4710849B.30104@gmx.at> (raw)
In-Reply-To: <470FFCF1.5050201@cegetel.net>

 > 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.





  reply	other threads:[~2007-10-13  8:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-12 23:02 reindent-then-newline-and-indent doesn't indent properly in emacs 22.1 nuxdoors
2007-10-13  8:40 ` martin rudalics [this message]
2007-10-13 22:24   ` nuxdoors
2007-10-14 13:23     ` nuxdoors
2007-10-14 18:26       ` martin rudalics
     [not found]     ` <mailman.2040.1192368226.18990.bug-gnu-emacs@gnu.org>
2007-10-14 19:48       ` Stefan Monnier
2007-10-16 15:19       ` Stefan Monnier
2007-10-15  1:37     ` Richard Stallman
2007-10-16  0:07       ` nuxdoors
2007-10-16 19:09         ` Richard Stallman
2007-10-16 20:39           ` nuxdoors
     [not found]             ` <E1Ii13p-0002HF-Q4@fencepost.gnu.org>
2007-10-19  1:07               ` nuxdoors
2007-10-14 12:46 ` nuxdoors
2007-10-15  1:37   ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4710849B.30104@gmx.at \
    --to=rudalics@gmx.at \
    --cc=bug-gnu-emacs@gnu.org \
    --cc=nuxdoors@cegetel.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.