all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: charles@aurox.ch (Charles A. Roelli)
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: 32991@debbugs.gnu.org
Subject: bug#32991: 27.0.50; diff-auto-refine-mode a no-op
Date: Sat, 13 Oct 2018 15:42:54 +0200	[thread overview]
Message-ID: <m2tvlqync1.fsf@aurox.ch> (raw)
In-Reply-To: <jwv36tdpqkv.fsf-monnier+emacsbugs@gnu.org> (message from Stefan Monnier on Wed, 10 Oct 2018 15:21:27 -0400)

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Wed, 10 Oct 2018 15:21:27 -0400
> 
> I don't see what the navigation-triggered refinement has of
> "auto"matism, compared to font-lock, so I wouldn't use `auto` here.
> I'd rather go with something like `nil`, `font-lock`, or `navigation`
> (and default to `font-lock`).

Sounds good.

> > While we're on this point, what is the use case for offering automatic
> > refining during navigation if we can now offer "just-in-time"
> > highlighting via font-lock?
> 
> Good question.  Maybe it's just not worth it and we should simply get
> rid of the old navigation-triggered refinement.  This said, the new
> font-lock thingy can be problematic if the diff takes too much time
> since it happens within jit-lock with inhibit-quit set to a non-nil
> value, so it completely freezes your Emacs session, whereas if it
> happens during `n` you can stop it with C-g.
> 
> Hopefully, we can fix this problem by calling `diff` asynchronously so
> it can't block Emacs.

I was able to produce such a case where Emacs froze for 30 seconds on
opening a 2000-line (junk) diff containing one large hunk.

It would indeed be convenient to have "diff" called asynchronously
(assuming this is the "diff" that runs in smerge-refine-regions).  Is
it a matter of using "start-process" instead of "call-process"?

> > It could be even better if C-c C-b could interactively toggle the
> > refining of the hunk at point (for those times when the refining turns
> > out to be an eye-sore).
> 
> Sounds good (but note that diff-refine-hunk can also be useful to
> *refresh* the fine highlighting, e.g. after manually editing a hunk).

Ok, then switching off the refining might fit better on a prefix
argument, or in a new command.

> font-lock-maximum-decoration is fundamentally flawed in that it is
> unidimensional (you can only have more or less) whereas often some users
> may want more of one kind of info and less of another.
> 
> E.g. how would you order the "decoration levels" between:
> 
>     basic
>     basic + refine
>     basic + prettify
>     basic + prettify + refine
> 
> The first and last are easy, but there's no natural ordering between the
> middle two.

Good point.  Maybe we could start with an ordering of just
"basic"/"basic + refine", since the diff-font-lock-prettify option is
brand new and seems to be more about hiding text than decorating it,
IIUC.





  reply	other threads:[~2018-10-13 13:42 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-08 18:30 bug#32991: 27.0.50; diff-auto-refine-mode a no-op Charles A. Roelli
2018-10-08 21:00 ` Stefan Monnier
2018-10-09 19:15   ` Charles A. Roelli
2018-10-09 19:54     ` Stefan Monnier
2018-10-10 18:31       ` Charles A. Roelli
2018-10-10 19:21         ` Stefan Monnier
2018-10-13 13:42           ` Charles A. Roelli [this message]
2018-10-13 18:51             ` Stefan Monnier
2019-01-13 14:36           ` Charles A. Roelli
2019-01-13 20:03             ` Charles A. Roelli
2019-01-13 23:33               ` Stefan Monnier
2019-01-15 20:25                 ` Charles A. Roelli
2019-02-11 20:14                   ` Stefan Monnier
2019-02-18 19:06                     ` Charles A. Roelli
2019-02-18 20:44                       ` Stefan Monnier
2019-02-24 16:12                         ` Charles A. Roelli
2019-02-27 15:04                           ` Stefan Monnier
2019-03-03 20:51                             ` Charles A. Roelli
2019-03-05 21:38                               ` Juri Linkov
2019-03-07 19:23                                 ` Charles A. Roelli
2019-01-30 21:04                 ` Juri Linkov
2019-02-01  7:38                   ` Stefan Monnier
2019-02-03 11:42                     ` Charles A. Roelli
2019-02-03 12:37                       ` Stefan Monnier
2019-02-03 14:19                         ` Charles A. Roelli
2019-02-11 20:15                           ` Stefan Monnier

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=m2tvlqync1.fsf@aurox.ch \
    --to=charles@aurox.ch \
    --cc=32991@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.