diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-08-23 13:58:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-23 13:58:45 -0400 |
| commit | bb82f9612cdbfb2ac6929167f041061e9e3d4a0a (patch) | |
| tree | 75b2a93da52f13970aacf41fcb5bf6c17ae926ed /runtime/syntax/python.vim | |
| parent | 354ea3bf2a3a11b69fb5eac78b6334e8131ce4c4 (diff) | |
| download | rneovim-bb82f9612cdbfb2ac6929167f041061e9e3d4a0a.tar.gz rneovim-bb82f9612cdbfb2ac6929167f041061e9e3d4a0a.tar.bz2 rneovim-bb82f9612cdbfb2ac6929167f041061e9e3d4a0a.zip | |
fix(cmdatom): "!" operator hardcodes its range #41451
Problem:
The "!" operator stuffs its cmdline continuation (`:.,.+1!`), so its
frame ends before capture (stuff pending) and the redo-prep disappears
with it.
!ipsort<CR> => { type='excmd', lhs=':.,.+1!sort<NL>', keys=':.,.+1!sort<NL>' }
Compare to builtin "." which works bc `do_bang()` completes the redo
(`!ip` + `sort<NL>`).
Solution:
Appoint the stuffed continuation frame as the "redo-prep" frame.
!ipsort<CR> => { type='operator', operator='!', lhs='!ipsort<NL>', keys='!ipsort<NL>' }
Notes:
- atom_cmd_end(): a frame ending with stuff pending re-points its
redo-prep to the next frame.
- atom_cmd_start(): a stuffed continuation frame (`KeyStuffed`) keeps
the redo-prep; flushed stuff discards it.
Diffstat (limited to 'runtime/syntax/python.vim')
0 files changed, 0 insertions, 0 deletions