all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: Eli Zaretskii <eliz@gnu.org>, Arthur Miller <arthur.miller@live.com>
Cc: emacs-devel@gnu.org
Subject: Re: Missing snprintf in ucrt mingw + vc-refresh in find-file hook?
Date: Tue, 13 Feb 2024 23:26:42 +0200	[thread overview]
Message-ID: <8876d606-c4af-4a27-a1b1-4c3dea6d720e@gutov.dev> (raw)
In-Reply-To: <86sf1wpjui.fsf@gnu.org>

On 13/02/2024 15:36, Eli Zaretskii wrote:
>> From: Arthur Miller <arthur.miller@live.com>
>> Cc: emacs-devel@gnu.org
>> Date: Tue, 13 Feb 2024 10:47:33 +0100
>>
>> I wasn't even aware this was going on, untill yesterday. I understand that some
>> users like to see diverse stuff in their modeline, statusbars, powerlines,
>> command prompts and other widgets. That is fine; if users want it, give it to
>> them.
>>
>> But I am not such a user, and this feels a bit too much to have it auto
>> on. This can get triggered automatically in save places; for example I have save
>> place on, so when I open a file, Emacs will display cursor at the same place
>> where I left. I see that it gets triggred in some places with Helm
>> completion. Basically everything I have nowdays is in Git, inclusive my entire
>> emacs.d folder. That means I am constantly starting and killing git processes,
>> and I don't even care about that info on my modeline. I look barely at modeline;
>> sometimes I take a look at the clock or line/column number.
> 
> I understand your POV, but this is turned on by default in Emacs long
> ago.  So the default cannot be changed just because you personally
> dislike it.  Instead, I suggest that you change the default value of
> mode-line format locally.  Or remove vc-refresh-state from
> find-file-hook.  Or try playing with the value of vc-display-status.
> Or some other change that could do what you want; look in vc-hooks.el
> for ideas.

We could try dropping the forced refresh from find-file-hook. Then we'd 
have a function there that should be called differently, which would 
just reset the saved backend/status for the file, and the cached value 
for vc-mode (the mode-line element).

Then, if the user disabled showing the VC state in the mode-line, and 
doesn't have any other packages installed that use the status, Git won't 
be called, at least not right away.

Apparent downsides:

- As you noted in another thread, errors in the mode-line don't trigger 
the debugger. Any problems with fetching the VCS state will become 
somewhat more difficult to debug. Although someone would just have to 
evaluate (vc-state ...) to trigger that outside of mode-line context.

- Prompting the user whether to follow "symbolic link to %s-controlled 
source file" would become a lot more difficult if the code that's 
supposed to do that, again, runs in the context of the mode-line.

The latter seems like more of a problem, but we could fall back to the 
current functionality when the file is a symlink and vc-follow-symlinks 
is non-nil (fetch the backend eagerly).

As a result, we could have Emacs that's a little bit faster for users 
with custom mode-lines. And also for any find-file-noselect calls done 
in the background (we do those, sometimes on a list of files) won't 
fetch the VCS status eagerly. That seems like a win.

So I would welcome such an experiment, especially if one is careful to 
retain support for vc-follow-symlinks.

vc-after-save could similarly avoid doing the full refresh until the 
file's backend/state are requested again.



  parent reply	other threads:[~2024-02-13 21:26 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-12 10:06 Missing snprintf in ucrt mingw + vc-refresh in find-file hook? Arthur Miller
2024-02-12 13:44 ` Dmitry Gutov
2024-02-12 13:56   ` Arthur Miller
2024-02-12 14:58     ` Dmitry Gutov
2024-02-12 16:49       ` Eli Zaretskii
2024-02-12 18:05         ` Dmitry Gutov
2024-02-12 19:15           ` Eli Zaretskii
2024-02-12 19:25             ` Dmitry Gutov
2024-02-12 19:34               ` Eli Zaretskii
2024-02-13  9:47       ` Arthur Miller
2024-02-13 13:36         ` Eli Zaretskii
2024-02-13 14:30           ` Arthur Miller
2024-02-13 21:26           ` Dmitry Gutov [this message]
2024-02-13 23:10             ` Arthur Miller
2024-02-14  3:42               ` Dmitry Gutov
2024-02-14 21:04                 ` Arthur Miller
2024-02-14 22:37                   ` Dmitry Gutov
2024-02-15 11:16                     ` Arthur Miller
2024-02-14 14:30             ` Eli Zaretskii
2024-02-14 16:36               ` Dmitry Gutov
2024-02-14 16:51                 ` Eli Zaretskii
2024-02-14 17:01                   ` Dmitry Gutov
2024-02-14 17:29                     ` Eli Zaretskii
2024-02-14 21:05                       ` Dmitry Gutov
2024-02-12 14:36 ` Eli Zaretskii
2024-02-13 10:44   ` Arthur Miller
2024-02-13 13:13     ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2024-02-12 17:37 Angelo Graziosi
2024-02-13 10:49 ` Arthur Miller
2024-02-13 19:00 ` Arthur Miller
2024-02-13 20:01   ` Eli Zaretskii
2024-02-13 22:05     ` Arthur Miller
2024-02-14 14:45       ` Eli Zaretskii
2024-02-14 18:43         ` Arthur Miller
2024-02-13 21:26   ` Angelo Graziosi
2024-02-13 22:09     ` Arthur Miller
2024-02-13 22:21       ` Angelo Graziosi
2024-02-13 22:26         ` Arthur Miller

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=8876d606-c4af-4a27-a1b1-4c3dea6d720e@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=arthur.miller@live.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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.