aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/range.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-08-21 13:42:17 -0400
committerGitHub <noreply@github.com>2026-08-21 13:42:17 -0400
commit64236573525c257ecd7e268b255571328d4871c8 (patch)
treeb780316877b48bddd47a17849e00a489bd8b1c1e /runtime/lua/vim/range.lua
parent8e0e19c08bdb6ca7cf6f4062d55510b0272592cc (diff)
downloadrneovim-64236573525c257ecd7e268b255571328d4871c8.tar.gz
rneovim-64236573525c257ecd7e268b255571328d4871c8.tar.bz2
rneovim-64236573525c257ecd7e268b255571328d4871c8.zip
feat(cmdatom)!: eliminate the need for vim-repeat #41414
Problem: - `lhs` is not fully realized. E.g. for a "payload" mapping `lhs` omits the `getchar()` payload during a mapping (vim-surround `ds'` reports `lhs="ds"`). This means plugins like vim-repeat are still needed... - The "delta" fields of a CmdAtom are calculated too late. - `<abuf>` and `changed` check whatever (wrong) buffer a command (":bnext") might land in. - CTRL-W_w between two windows on the same buffer reports type="motion". Solution: - `CmdOrigin` samples (buf/win/cursor/changedtick) at each "scope" entry (CmdFrame, composite, Visual session, insert session). - `dd<C-w>l` reports `changed=true` for the buffer it edited, regardless of where the cursor ends up. - New fields: - `pos`: cursor position at command start. - `moved`: indicates whether the cursor moved (in same buffer). - `undoseq`: undo state at settlement. - lhs now includes the payload: "ds)" reports lhs="ds)" instead of "ds". - Easy for users to "replay" any atom. - Rename: type "command" => "normal", "ex" => "excmd"; `arg` => `cmdarg` - Drop `cascade` field (no reason to expose it)
Diffstat (limited to 'runtime/lua/vim/range.lua')
0 files changed, 0 insertions, 0 deletions