unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





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