Jean-Philippe Bernardy wrote:
> Can you detail what parts of the emacs emulation you have broken?

I eliminated your use of `forever' in Yi.Keymap. This way, Yi.Core.dispatch
can reliably observe when a key sequence has been “accepted”, and only then
record an InteractivePoint. The patch supposedly breaks what the comment about
the use of `forever' refers to, namely:

<   extractTopKeymap :: KeymapSet -> Keymap
<   extractTopKeymap kms = do
<       startTopKeymap kms >> topKeymap kms
<       -- Note the - currently disabled! - use of "forever": this has quite
<       -- subtle implications, as it means that failures in one iteration can
<       -- yield to jump to the next iteration seamlessly.  eg. in emacs
<       -- keybinding, failures in incremental search, like <left>, will "exit"
<       -- incremental search and immediately move to the left.

As far as I see, the described behaviour is irrelevant for vim, where e.g.
<left> in incremental search will move the cursor in the minibuffer.

Simply moving the `forever' into Yi.Keymap.Emacs only does not do the trick,
because this, although reestablishing the general behaviour, will mean that
InteractivePoints will never be recorded in emacs mode (that is, `C-x u'
undoes everything that you did). That's why I'm considering delegation of Undo
tracking to the keymaps, but I'm not sure if, or how, that's to be done.

>> Sun Sep 13 02:40:39 CEST 2009  Kalman Noel <[email protected]>
>>  * Change event handling to get useful Vim Undo


--~--~---------~--~----~------------~-------~--~----~
Yi development mailing list
[email protected]
http://groups.google.com/group/yi-devel
-~----------~----~----~----~------~----~------~--~---

Reply via email to