|
From: | Dmitry Gutov |
Subject: | bug#64088: [PATCH] Make project-root for vc projects return an absolute path |
Date: | Wed, 23 Aug 2023 03:24:02 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 |
On 19/08/2023 15:57, sbaugh@catern.com wrote:
Meaning it will be called N times (for the number of projects) every time the list is displayed, instead of just once, when the project is saved/visited. But maybe it's fine too? How slow could that be?I was sad about this but I think I've got the solution now: We just maintain project--list in abbreviated form and project-list-file in expanded form.
Here's something else I thought of: project--write-project-list is called every time a different project is returned by (project-current t) -- i.e. when MAYBE-PROMPT=t, and when the found dir is not at the top of the project history already.
So under certain conditions (slow CPU/spinning media/long project history) it might slow down (project-current t) calls. In my testing it's totally fine, though, and there are possible mitigations (limit the history and/or move saving to kill-hook). Just something to keep in mind.
I think that solves all the problems: the persistent file is independent of user configuration, so if the user changes their abbreviations they'll get new ones the next time the file is read (presumably the next time they run Emacs). But project--list is abbreviated, so project-prompt-project-dir gets abbreviated dirs. It does mean that if they change their directory-abbrev-alist while Emacs is running they could get duplicate entries, but that already could happen before this patch, and it's not a big problem IMO. See patch below.Oops, this patch needed a few tweaks. Especially, skipping the expansion and abbreviation for remote files, to avoid making unnecesary remote connections.
Thanks! Pushed to master, and finally closing ;-)
[Prev in Thread] | Current Thread | [Next in Thread] |