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, 23 Oct 2023 20:24:08 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 23/10/2023 09:58, Juri Linkov wrote:
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'.

Huh. That actually works for me now, after I ran 'make' and restarted.

But I thought you wanted this? 'C-x v d' ends with vc-dir, so if 'C-x p p C-x v' opens vc-dir, then isn't this what you expected?

Anyway, the resulting UI is fairly counter-intuitive.

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?

Try the attached, it's another iteration on the latest patch (prefix-command-echo-keystrokes-functions doesn't seem to work reliably in this context). Try it together with

  (setq project-switch-commands 'project-any-command)

Also see the "Variation" in the comment (it allows for short bindings).

Attachment: project-other-command-v3.diff
Description: Text Data


reply via email to

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