Subject: Re: 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: Mon, 23 Oct 2023 09:58:00 +0300

>> Wow, it works nicely for 'C-x p p C-x d'.
>> But strange it fails for 'C-x p p C-x v d'
>> with the same error:
>>    (wrong-type-argument commandp 1)
>
> That's because (lookup-key ... "vd") also returns 1.
>
> I haven't been able to find a solution that works like we would expect. The
> most trivial would be to loop cutting off invalid prefixes, but then we end
> up with 'd', not 'v'. That's probably not what you want.
>
> Ideally, 'read-key-sequence' would stop at the user pressing 'v' and return
> "^Xv", then the rest would work out okay. But I haven't managed to have it
> do that, even when using overriding-terminal-local-map and temporarily
> altering the global map. My experimental patch is below, you can try
> tweaking it.

Now can't type 'C-x p p C-x v d' completely because
'C-x p p C-x v' opens vc-dir after typing 'v'.

> And overall I'm not sure it's a constructive approach because you might
> have been going for 'C-x v d' (where the 'v' translation is correct), but
> you might have been going for 'C-x v D' or 'C-x v v' instead, very
> different commands. It might be better to report unknown key sequence and
> let the user make an explicit choice, like it works now. Depends on whether
> you notice the key sequence echoing while doing that input.

Maybe adding a new option 'project-switch-use-global-map' would help?