This is a real (extremely subtle) change. Please report *any* problem
immediately.
Imo, there would have been no point to making this change in a new branch.
It must be tested, right now, in devel.
The new code in g.KeyStroke retains the "wider" spelling (ks.s) of the
so-called "gang of four" keys ('\r', '\n', '\b' and '\t') when there is
*any* modifier, including Shift. This emphasizes that ks.s is a *binding*,
completely distinct from event.char. The new code leaves event.char
unchanged.
For example, the binding (ks.s) or Shift-\n' or 'Shift-Return will be
'Shift+Return', not 'Shift+\n'. Any user binding to Shift+Return (no
matter the spelling) will be treated as distinct from Leo's default
handling of the return key.
Like all changes to the g.KeyStroke class, this has the potential for
trouble, but imo it is important to make the change. Leo has always treated
modified gang-of-four characters like plain gang-of-four characters *only*
if there is no modified binding for them. Yes, this is a subtle point, but
it's important. This fine point has kept me up for the last two nights...
The new code should be exactly equivalent to the old. The only change is
the spelling of bindings, and bindings are (now) never used in Leo's core,
except as keys to dictionaries. In other words, this change should affect
only the output of --trace-keys.
All my tests pass, including with vim mode, the Nav pane. The new version
of @test g.KeyStroke pretty thoroughly tests the changes.
This is, really and truly, the last planned change to Leo's key handling.
Having said that, I'm willing to spend any amount of work fixing remaining
bugs. *No way* are we going back to the old code base.
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.