all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dima Kogan <dima@secretsauce.net>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Tino Calancha <tino.calancha@gmail.com>, emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] master 2c8a7e5: Improve diff-mode navigation/manipulation
Date: Sun, 11 Dec 2016 23:28:13 -0800	[thread overview]
Message-ID: <87fultr4he.fsf@secretsauce.net> (raw)
In-Reply-To: <9fe241fa-d4ee-6e44-bfdd-99cb6b4ab4e4@yandex.ru>

Dmitry Gutov <dgutov@yandex.ru> writes:

> On 10.12.2016 19:27, Dima Kogan wrote:
>
>> For the other concerns, I can special-case the last hunk, and move to
>> eob for diff-next, and to ding only if we're already at eob to begin
>> with.

Hi. I played around with this, and I now really don't like this idea
because it would mean that diff-hunk-next no longer always moves to the
next hunk. At the last hunk, diff-hunk-next would stay on the SAME hunk
if this was implemented. It would really make more sense if

- diff-hunk-next moves to next hunk
- if this isn't possible, the point stays where it is, and an error is
  signalled

This is what the behavior in git intends to do.

Furthermore, I think invoking auto-refinement in diff-mode-hook makes
sense. The auto-refinement logic is written (not by me) to auto-refine
the hunk at point when it is visited. And this is triggered not just
with functions such as diff-hunk-next but also with actions such as
turning on auto-refine-mode: diff-auto-refine-mode refines the hunk at
point. Given this, I think it makes sense for us to do what
diff-auto-refine-mode does if we enter diff-mode and auto-refinement is
already on.

And I think that this should happen even if the first hunk is large.
This would indeed be slow, but this is AUTO refinement. If you want to
decide when refinement should or should not happen, auto-refinement is
not what you want. We can add a variable to block auto-refinement for
hunks larger than some size, which probably would be a good idea anyway.

I fixed the incorrect behavior where auto-refinement was kicking in even
when the navigation failed and we signalled an error.

Not attaching any patches yet. Let's agree on an approach, and then talk
implementation.

dima



  reply	other threads:[~2016-12-12  7:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-29 12:07 [Emacs-diffs] master 2c8a7e5: Improve diff-mode navigation/manipulation Tino Calancha
2016-11-30  0:03 ` Noam Postavsky
2016-11-30 14:22 ` Dmitry Gutov
2016-11-30 14:31   ` Stefan Monnier
2016-11-30 14:34     ` Dmitry Gutov
2016-11-30 15:07       ` Stefan Monnier
2016-12-10  1:27   ` Dima Kogan
2016-12-10 10:14     ` Dmitry Gutov
2016-12-10 17:27       ` Dima Kogan
2016-12-11 11:07         ` Dmitry Gutov
2016-12-12  7:28           ` Dima Kogan [this message]
2016-12-16  1:05             ` Dmitry Gutov
2016-12-20  2:22             ` Tino Calancha
2016-12-20  7:31               ` Dima Kogan
2016-12-25  6:52               ` Dima Kogan
2016-12-25  9:48                 ` Tino Calancha
2016-12-25  9:58                   ` Tino Calancha
2016-12-25 14:10                     ` Dmitry Gutov
2016-12-06  2:03 ` Mark Oteiza
2016-12-07  7:29   ` Dima Kogan
2017-01-06  2:58     ` bug#25105: " Mark Oteiza
2017-01-06  2:58     ` Mark Oteiza
2016-12-07  7:29   ` bug#25105: " Dima Kogan

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=87fultr4he.fsf@secretsauce.net \
    --to=dima@secretsauce.net \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=tino.calancha@gmail.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 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.