diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-08-29 02:03:12 +0200 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2026-08-31 00:16:01 +0200 |
| commit | bc16be3cd91b1d7508f91da97f5c95881eea5fc7 (patch) | |
| tree | 36fb2055b7bc37c5228e78f362161c6e784323bc /runtime/syntax/python.vim | |
| parent | de83b54ddf644ba32e6f9a51578d5f669e45a140 (diff) | |
| download | rneovim-bc16be3cd91b1d7508f91da97f5c95881eea5fc7.tar.gz rneovim-bc16be3cd91b1d7508f91da97f5c95881eea5fc7.tar.bz2 rneovim-bc16be3cd91b1d7508f91da97f5c95881eea5fc7.zip | |
fix(cmdatom): operator with Lua textobject is not type=operator
Problem:
An operator completed by a Lua `:omap` textobject emits
`CmdAtom.type="mapping"` (lhs-only, no keys) instead of `type="operator"`.
Analysis:
`atom_redo_set()` declined K_LUA, though the prepped redo
("op" + K_LUA + id + CR) is exactly what "." replays. A no-edit "g@"
emits nothing at all.
Solution:
- `atom_redo_set`: don't decline K_LUA; the redo route now captures the
operator atom.
- `atom_capture_cmd`: don't early-return if the frame has prepped redo.
- op_function(): save/restore redobuff when invoking 'operatorfunc',
like `call_user_func()` does for Vimscript. (Else the Lua callback
may clobber the prepped "g@" redo / dot-repeat.)
fix #41482
TODO:
- async Lua (timer/vim.schedule) can still clobber the pending dot-repeat...
Diffstat (limited to 'runtime/syntax/python.vim')
0 files changed, 0 insertions, 0 deletions