From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: xref and leaving "temporary" buffers open
Date: Sat, 25 Jul 2015 18:09:33 +0300 [thread overview]
Message-ID: <55B3A6AD.6030008@yandex.ru> (raw)
In-Reply-To: <83egjw1ez7.fsf@gnu.org>
On 07/25/2015 05:36 PM, Eli Zaretskii wrote:
> Is it ever possible to have a discussion with you without feeling
> castigated for my views and opinions? You asked for opinions, so
> please accept them benevolently, even if you don't like them.
I'm sorry, it's just I've seen the suggestion to handle every possible
behavior too many times, from different people in the Emacs community.
What I'm asking is which behavior people here will actually prefer,
after weighing the tradeoffs. You've written that below, and thank you
for that.
> My vote is for the default that keeps the buffers. I see nothing
> wrong with having a lot of buffers in an Emacs session. Personally, I
> regularly walk through all my buffers and kill those I no longer need,
> because I use desktop.el to restore my sessions, which would otherwise
> grow indefinitely. It's no big deal. It is much less of a big deal
> if sessions are not restored.
That's what I'm also inclining towards now. However, the list of buffers
automatically opened by xref might be too big for you (or me) to clean
up manually (if you search for occurrences of some common word, for
example). After that, I'm not sure what a user might do to undo that.
(mapc #'kill-buffer (buffer-list)) might be the only option.
>> If the buffers are killed, xref-query-replace will need to account for
>> that, and not open too many buffers at the same time.
>
> I don't see why that would be true. Please elaborate.
To be clear, I mean it'll need not to open all buffers in advance.
At the moment, it opens all files, and puts markers around each match,
because if there are several matches on the same line, after the
replacement is performed on the first of them, the rest will become
"stale", because the recorded column information will become outdated.
In order not to spend too much time on opening buffers in advance, it'll
need to open only one or two buffers at the same time, before moving to
the next match to replace. That will increase the performance, as
perceived by the user.
> You asked for an opinion, that's mine. IME, good engineering
> anticipates such requests before they are voiced. If you can only
> resolve a controversy applying your personal preferences, it's a clear
> sign that someone, somewhere will be unhappy about it.
We can't really support *every* preference. And some of them can even be
incompatible with architectural decisions providing best tradeoffs.
IMO, it's better to decide on the default workflow that we believe to be
useful to most, and only after that add variations to that behavior.
Ideally, we might even find a solution that satisfies the needs of both
kinds of users, which would otherwise ask for different behaviors,
tailored for their needs. In this instance, a "buffer cache" might be
that solution, if it'll provide both performance benefits of not having
to open the buffers several times, as well as the clutter management
benefits, if the buffers are flagged appropriately.
next prev parent reply other threads:[~2015-07-25 15:09 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-25 0:47 xref and leaving "temporary" buffers open Dmitry Gutov
2015-07-25 7:27 ` Eli Zaretskii
2015-07-25 13:26 ` Dmitry Gutov
2015-07-25 14:07 ` Eli Zaretskii
2015-07-25 14:24 ` Dmitry Gutov
2015-07-25 14:36 ` Eli Zaretskii
2015-07-25 15:09 ` Dmitry Gutov [this message]
2015-07-25 15:27 ` Eli Zaretskii
2015-07-25 16:07 ` Dmitry Gutov
2015-07-25 16:15 ` Eli Zaretskii
2015-07-25 16:28 ` Dmitry Gutov
2015-07-25 16:38 ` Eli Zaretskii
2015-07-25 17:03 ` Dmitry Gutov
2015-07-25 18:17 ` martin rudalics
2015-07-25 18:30 ` Dmitry Gutov
2015-07-27 17:34 ` Nix
2015-07-28 13:30 ` Dmitry Gutov
2015-07-29 15:02 ` Nix
2015-07-25 8:28 ` martin rudalics
2015-07-25 13:36 ` Dmitry Gutov
2015-07-25 14:12 ` martin rudalics
2015-07-25 14:44 ` Dmitry Gutov
2015-07-25 15:53 ` martin rudalics
2015-07-25 20:12 ` Dmitry Gutov
2015-07-26 11:27 ` martin rudalics
2015-07-26 13:50 ` Dmitry Gutov
2015-07-27 16:02 ` martin rudalics
2015-07-28 12:57 ` Dmitry Gutov
2015-07-28 13:16 ` martin rudalics
2015-07-28 13:35 ` Dmitry Gutov
2015-07-28 15:10 ` martin rudalics
2015-07-28 15:18 ` Dmitry Gutov
2015-07-28 15:40 ` martin rudalics
2015-07-28 19:13 ` Dmitry Gutov
2015-07-28 23:48 ` Stefan Monnier
2015-07-29 1:42 ` Dmitry Gutov
2015-07-30 21:41 ` Stefan Monnier
2015-08-03 2:12 ` Dmitry Gutov
2015-08-03 6:47 ` martin rudalics
2015-08-03 10:10 ` Dmitry Gutov
2015-08-03 10:45 ` martin rudalics
2015-08-03 10:50 ` Stefan Monnier
2015-07-26 19:00 ` Stephen Leake
2015-07-26 19:11 ` Dmitry Gutov
2015-07-27 16:02 ` martin rudalics
2015-07-28 1:32 ` Stephen Leake
2015-07-25 13:47 ` Stephen Leake
2015-07-25 14:19 ` martin rudalics
2015-07-25 15:51 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55B3A6AD.6030008@yandex.ru \
--to=dgutov@yandex.ru \
--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.