Fix glp backward cycle and gl<Space> current-list scope
CI / cargo fmt --check (push) Successful in 16s
CI / cargo clippy (push) Successful in 21s
CI / cargo test (push) Successful in 37s
CI / cargo fmt --check (pull_request) Successful in 34s
CI / cargo clippy (pull_request) Successful in 36s
CI / cargo test (pull_request) Successful in 38s
CI / editor keymaps (push) Successful in 1m23s
CI / editor keymaps (pull_request) Successful in 1m31s
CI / cargo fmt --check (push) Successful in 16s
CI / cargo clippy (push) Successful in 21s
CI / cargo test (push) Successful in 37s
CI / cargo fmt --check (pull_request) Successful in 34s
CI / cargo clippy (pull_request) Successful in 36s
CI / cargo test (pull_request) Successful in 38s
CI / editor keymaps (push) Successful in 1m23s
CI / editor keymaps (pull_request) Successful in 1m31s
Two documented checkbox-list mappings did not match their spec: - `glp` dispatched the same forward-only cycleCheckbox as `gln`, so it could never "cycle the checkbox state backward". Add `ops::cycle_state_back` and thread a `reverse` flag through the dispatcher and both clients. - `gl<Space>` and `gL<Space>` both swept the whole buffer, making them identical. `gl<Space>` now passes the cursor position and the server scopes deletion to the contiguous list block under the cursor (current list, cascading into sublists); `gL<Space>` stays whole-buffer. Adds Rust unit tests, plus behavioral and full-registration coverage for the documented mapping surface in the Neovim and Vim keymap harnesses, and a command-coverage suite mirroring the doc's command groups. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -478,6 +478,13 @@ endfunction
|
||||
function! nuwiki#commands#cycle_list_item() abort
|
||||
call s:exec_pos('nuwiki.list.cycleCheckbox')
|
||||
endfunction
|
||||
" `glp` cycles backward — same command, `reverse` flag in the payload.
|
||||
function! nuwiki#commands#cycle_list_item_back() abort
|
||||
let l:p = s:cursor_position()
|
||||
let l:args = [{ 'uri': l:p['textDocument']['uri'],
|
||||
\ 'position': l:p['position'], 'reverse': v:true }]
|
||||
call s:exec('nuwiki.list.cycleCheckbox', l:args)
|
||||
endfunction
|
||||
function! nuwiki#commands#reject_list_item() abort
|
||||
call s:exec_pos('nuwiki.list.rejectCheckbox')
|
||||
endfunction
|
||||
@@ -631,7 +638,16 @@ endfunction
|
||||
|
||||
" §13.1 Cluster A — list rewriters.
|
||||
|
||||
" `gl<Space>` — remove done items from the current list only. Passing the
|
||||
" cursor position scopes the server to the contiguous list block under it.
|
||||
function! nuwiki#commands#list_remove_done() abort
|
||||
let l:p = s:cursor_position()
|
||||
let l:args = [{ 'uri': l:p['textDocument']['uri'], 'position': l:p['position'] }]
|
||||
call s:exec('nuwiki.list.removeDone', l:args)
|
||||
endfunction
|
||||
|
||||
" `gL<Space>` — remove done items across the whole buffer (no position).
|
||||
function! nuwiki#commands#list_remove_done_all() abort
|
||||
let l:args = [{ 'uri': s:buf_uri() }]
|
||||
call s:exec('nuwiki.list.removeDone', l:args)
|
||||
endfunction
|
||||
|
||||
Reference in New Issue
Block a user