GNU bug report logs -
#63648
29.0.90; project.el: with switch-use-entire-map, switch-project errors on non-project commands
Previous Next
Reported by: Spencer Baugh <sbaugh <at> janestreet.com>
Date: Mon, 22 May 2023 16:29:02 UTC
Severity: normal
Found in version 29.0.90
Done: Dmitry Gutov <dmitry <at> gutov.dev>
Bug is archived. No further changes may be made.
Full log
Message #299 received at 63648 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 25/10/2023 19:53, Juri Linkov wrote:
>> + ;; Variation: could be a separate command, or an option.
>> + ;; (command (let ((overriding-local-map project-prefix-map))
>> + ;; (key-binding (read-key-sequence
>> + ;; (format "[execute in %s]:" (project-root pr)))
>> + ;; t)))
>
> Thanks, it works nicely.
> Any reason not to use this by default?
Nothing critical, but it might not fit the expectations without
additional instructions in the prompt, or it can be unnecessary if the
user had reached this command through 'C-x p o'.
In the latter case there is also a small chance that the user had set up
some advanced sub-maps inside project-prefix-map which would shadow some
global bindings. So maybe a separate command is best. Please see how you
like the attached new version together with
(setq project-switch-commands #'project-prefix-or-any-command)
I'm not sure about project-prefix-or-any-command's prompt, though
(phrasing feels awkward). Improvements welcome.
>> + (if found
>> + (let ((project-current-directory-override root))
>> + (call-interactively command))
>> + (let ((default-directory root))
>> + (call-interactively command))))))
>
> Not sure why need to let-bind project-current-directory-override here.
> It seems to work with and without it.
You mean with found=nil? Indeed, rebinding
project-current-directory-override instead of just doing that with
default-directory is critical for only a small subset of commands (such
as project-switch-buffer or bug#58784). So this will be a 99% solution
that, however, leads to more straightforward code.
BTW, let me know if you prefer the "prefix command" style from your last
patch for this command. My main sticking point with it was the change of
logic used to indicate a different project root, but it can just as well
be transplanted there. So if the prefix command approach is better for
some scenarios, we can switch to it.
[project-other-command-v4.diff (text/x-patch, attachment)]
This bug report was last modified 1 year and 200 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.