Subject: bug#63648: 29.0.90; project.el: with switch-use-entire-map, switch-project errors on non-project commands

From: Juri Linkov <[email-masked]>
Date: Tue, 19 Sep 2023 20:57:49 +0300

> And we should consider whether other-project-prefix should entirely subsume
> project-switch-project. Or they should remain separate commands.

We could leave project-switch-project unobsoleted indefinitely
for users who might prefer it, and users can bind it to C-x p p.

> E.g. would people who customized project-switch-commands to a symbol be
> okay with not being able to use the other functionality of
> other-project-prefix?

Symbolic project-switch-commands is supported by other-project-prefix.

> Or what about the variable project-switch-use-entire-map? I'm not sure
> about dropping it, at least without notifying about that in the UI somehow.

project-switch-use-entire-map could be handled in other-project-prefix.
But is this really needed?  I can't imagine why anyone might want
to disable keys from project-prefix-map.

> Finally, the current patch drops the loop, so if the user types the wrong
> key, they will need to repeat the command and choose the project again.

Indeed, the loop now is the command loop, and maybe it's possible to
write a hack to set a catch-all in set-transient-map that is not
finished until a key in the map is typed.  But as with any command,
if the user types a wrong key sequence, then need to type it again.
I do this all the time with mistakenly typed keys.  I don't see why
project keys are the exception.

> So perhaps the simplest incremental change is to add other-project-prefix
> which will work with "regular" commands and keep project-switch-project for
> project commands (whether it will support "project" commands as well, can
> be optional).
>
> The downside is that it will require a different key binding (or for the
> user to redefine the current one), so I'm open to discussing all the
> questions above.

A different key binding for the commands that do the same thing?
Only because the new command uses the command loop?