diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-09-11 11:35:19 +0200 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2026-09-11 13:53:21 +0200 |
| commit | 3751112546951be6016b8087ef07606bb22dd6ff (patch) | |
| tree | 11252b808ae6b001421767c078f5395312c058e8 /runtime/lua/vim/async/_queue.lua | |
| parent | 2a344d8c8484da16471a2856d5e716624b27adfb (diff) | |
| download | rneovim-3751112546951be6016b8087ef07606bb22dd6ff.tar.gz rneovim-3751112546951be6016b8087ef07606bb22dd6ff.tar.bz2 rneovim-3751112546951be6016b8087ef07606bb22dd6ff.zip | |
fix(multicursor): q= (toggle follow) is not synchronous
Problem:
The clock-edge that decides whether queued motions cascade, reads the
global `mc_follow_motion` at the end, which may differ since the command
started/executed.
Examples:
- A mapping like `2q=gg1q=` (off, move, on) cascades the "gg" and merges
the cursors, because follow=on when the clock-edge resolves stuff.
- `{Visual}Q` after a mapping enables follow at the end, and the
clock-edge mistakenly cascades the mapping's keys.
Solution:
Save `CmdFrame.follow` in `curcmd`, and pass it to `mc_clock_edge()`.
Innermost-frame wins, so `q=` performed by a subatom/subcmd wins.
Diffstat (limited to 'runtime/lua/vim/async/_queue.lua')
0 files changed, 0 insertions, 0 deletions