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.
next prev 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.