aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/async/_queue.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-09-11 11:35:19 +0200
committerJustin M. Keyes <justinkz@gmail.com>2026-09-11 13:53:21 +0200
commit3751112546951be6016b8087ef07606bb22dd6ff (patch)
tree11252b808ae6b001421767c078f5395312c058e8 /runtime/lua/vim/async/_queue.lua
parent2a344d8c8484da16471a2856d5e716624b27adfb (diff)
downloadrneovim-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