bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#63648: 29.0.90; project.el: with switch-use-entire-map, switch-proje


From: Dmitry Gutov
Subject: bug#63648: 29.0.90; project.el: with switch-use-entire-map, switch-project errors on non-project commands
Date: Mon, 18 Sep 2023 14:00:03 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 18/09/2023 09:51, Juri Linkov wrote:
'C-x p p C-x v L' to see a vc log in another project, and
'C-x p p C-x v d' to open vc-dir, etc.
All right, so we also want to support non-project commands. And you wanted
to use a common approach for both.

What if we handle them differently, though? For "project" commands (those
that internally call project-current) we can set one variable, and for the
rest -- alter default-directory. Then restore the previous value in
post-command.

The detection of "project commands" could work like this:

- Is it in one of the special maps? E.g. in project-prefix-map. Or maybe
   it's in project-switch-commands.
- Does the function name start with 'project-'?
- Finally, for user-defined commands we could also introduce a property
   'project-command-p', although the distinction between using
   project-current-directory-override vs default-directory will not be
   important for every such command, so maybe being this thorough is not too
  important.
Sorry, I don't understand how 'C-x p p' could read the user's mind
whether the user afterwards will type a key for a project command
or a non-project command?  And depending on user's intention will
either set project-current-directory-override or default-directory.

Ah, I forgot that in the general case we don't read the sequence, find the command and do the thing. We leave the event loop up to Emacs.

What about pre-command-hook? this-command will already be set by then.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]