From: Spencer Baugh via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Dmitry Gutov <dmitry@gutov.dev>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 73172@debbugs.gnu.org
Subject: bug#73172: [PATCH] Move to start of current header in diff-{file, hunk}-prev
Date: Thu, 19 Sep 2024 14:41:31 -0400 [thread overview]
Message-ID: <iercykzh4f8.fsf_-_@janestreet.com> (raw)
In-Reply-To: <4dbaac34-a1cc-4d4c-839c-bda74001e4b5@gutov.dev> (Dmitry Gutov's message of "Fri, 13 Sep 2024 03:28:43 +0300")
Dmitry Gutov <dmitry@gutov.dev> writes:
> Hi Spencer and Stefan,
>
> On 10/09/2024 21:40, Spencer Baugh via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
>
>> (The following change is split across two patches; the first one, "move
>> easy-mmode", fixes an unrelated FIXME, which makes the diff in the
>> second patch simpler)
>> If point was after a file or hunk header, the diff-file-prev and
>> diff-hunk-prev commands would move to the start of that header.
>> But if point was *within* the header, they would not move, and
>> would report "No previous file" or "No previous hunk". This
>> differs from the behavior of most other movement commands,
>> e.g. backward-sexp or backward-sentence.
>> This commit fixes diff-file-prev and diff-hunk-prev, as well as
>> other easy-mmode-define-navigation BASE-prev commands. Now
>> these commands move to the start of the containing "thing" just
>> like other movement commands.
>> * lisp/emacs-lisp/easy-mmode.el (easy-mmode--prev): Move to
>> start of current match first.
>> Also discussed here:
>> https://lists.gnu.org/archive/html/help-gnu-emacs/2024-08/msg00367.html
>
> Patch#1 seems unequivocally a good thing (easier code iteration)
BTW, if we want to go ahead and install that patch on its own, that
would be fine with me.
> and patch#2 seems good on balance.
>
> It does introduce some backward incompatibility in rare cases where I
> have probably internalized the current behavior already -- for example
> in the vc-print-root-log output pressing 'p' while on the first line
> somewhere between the initial '*' and the end of the date dings with
> "No previous log message", and how will move to bol.
>
> But it might be more consistent anyway, given that the there is no
> ding already if you start out inside the summary text.
Yes. It's definitely a change in behavior.
But, if someone has internalized:
diff-file-prev usually acts like "backward-sexp for files" (it moves
point to the start of the current file), except that if point is in
the header of the first file in the buffer then diff-file-prev does
nothing instead.
Then I think they'll be happy to be able to discard that knowledge
in favor of:
diff-file-prev always acts like "backward-sexp for files" (it moves
point to the start of the current file).
Especially because "does nothing in one weird corner case" is not useful
or deliberate behavior (it's just a bug).
> There aren't many in-tree callers of easy-mmode-define-navigation
> (diff-mode, log-view, smerge and, uh, cvs-status), and few 3rd party
> callers, so this seems low-impact. diff-hl-mode is not affected either
> because it only uses diff-hunk-next, not diff-hunk-prev.
Yep. I think it will be a nice improvement for those few other commands
as well.
next prev parent reply other threads:[~2024-09-19 18:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 18:40 bug#73172: [PATCH] Move to start of current header in diff-{file, hunk}-prev Spencer Baugh via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-13 0:28 ` Dmitry Gutov
2024-09-19 18:41 ` Spencer Baugh via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-09-19 20:46 ` Dmitry Gutov
2024-09-20 6:17 ` Eli Zaretskii
2024-09-20 17:24 ` Spencer Baugh via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-09-27 1:32 ` Dmitry Gutov
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=iercykzh4f8.fsf_-_@janestreet.com \
--to=bug-gnu-emacs@gnu.org \
--cc=73172@debbugs.gnu.org \
--cc=dmitry@gutov.dev \
--cc=monnier@iro.umontreal.ca \
--cc=sbaugh@janestreet.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).