feat(diary): -count wiki selector for diary-note + index commands (P3)
CI / cargo fmt --check (push) Successful in 25s
CI / cargo clippy (push) Failing after 34s
CI / cargo test (push) Failing after 33s
CI / editor keymaps (push) Has been skipped

Closes the last command-cluster gap. Upstream's diary-note family
(:Vimwiki{Make,TabMake,MakeYesterday,MakeTomorrow}DiaryNote + VimwikiDiaryIndex,
and the Nuwiki* forms) carry -count=0 where the count selects the wiki number;
nuwiki's were bare. Implemented as a real end-to-end selector, reusing existing
infrastructure:

- Server (commands.rs): OptUriArg gained an optional `wiki` selector;
  resolve_diary_wiki(backend, uri, wiki) now prefers it (via the existing
  resolve_wiki_selector, which already handles a 0-indexed wiki number) over
  the buffer URI. Used by diary_open_relative + diary_open_index.

- Clients: s:diary_open / _diary_open (both) and diary_today/today_tab/
  yesterday/tomorrow/index take a count and send {wiki: count-1} when >0. All
  22 diary-note + DiaryIndex command defs across the 4 contexts are now
  -count=0 passing <count>. diary_next/prev ignore the count.

Tests: cmd.VimwikiMakeDiaryNote_has_count (test-keymaps.lua) +
cmd.Vimwiki{MakeDiaryNote,DiaryIndex}_accepts_count (test-keymaps-vim.vim).
Workspace test/clippy/fmt clean with CI flags; lua 284, vim 272/18/21.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-31 22:16:03 +00:00
parent f0c07f0c28
commit 874bdd0c02
4 changed files with 64 additions and 40 deletions
+26 -26
View File
@@ -48,11 +48,11 @@ if !has('nvim')
command! -buffer -count=0 VimwikiIndex call nuwiki#commands#wiki_index(<count>)
command! -buffer -count=0 VimwikiTabIndex call nuwiki#commands#wiki_tab_index(<count>)
command! -buffer VimwikiUISelect call nuwiki#commands#wiki_ui_select()
command! -buffer VimwikiDiaryIndex call nuwiki#commands#diary_index()
command! -buffer VimwikiMakeDiaryNote call nuwiki#commands#diary_today()
command! -buffer VimwikiTabMakeDiaryNote call nuwiki#commands#diary_today_tab()
command! -buffer VimwikiMakeYesterdayDiaryNote call nuwiki#commands#diary_yesterday()
command! -buffer VimwikiMakeTomorrowDiaryNote call nuwiki#commands#diary_tomorrow()
command! -buffer -count=0 VimwikiDiaryIndex call nuwiki#commands#diary_index(<count>)
command! -buffer -count=0 VimwikiMakeDiaryNote call nuwiki#commands#diary_today(<count>)
command! -buffer -count=0 VimwikiTabMakeDiaryNote call nuwiki#commands#diary_today_tab(<count>)
command! -buffer -count=0 VimwikiMakeYesterdayDiaryNote call nuwiki#commands#diary_yesterday(<count>)
command! -buffer -count=0 VimwikiMakeTomorrowDiaryNote call nuwiki#commands#diary_tomorrow(<count>)
command! -buffer VimwikiDiaryNextDay call nuwiki#commands#diary_next()
command! -buffer VimwikiDiaryPrevDay call nuwiki#commands#diary_prev()
command! -buffer VimwikiDiaryGenerateLinks call nuwiki#commands#diary_generate_index()
@@ -122,10 +122,10 @@ if !has('nvim')
command! -buffer -count=0 NuwikiIndex call nuwiki#commands#wiki_index(<count>)
command! -buffer -count=0 NuwikiTabIndex call nuwiki#commands#wiki_tab_index(<count>)
command! -buffer NuwikiUISelect call nuwiki#commands#wiki_ui_select()
command! -buffer NuwikiDiaryIndex call nuwiki#commands#diary_index()
command! -buffer NuwikiDiaryToday call nuwiki#commands#diary_today()
command! -buffer NuwikiDiaryYesterday call nuwiki#commands#diary_yesterday()
command! -buffer NuwikiDiaryTomorrow call nuwiki#commands#diary_tomorrow()
command! -buffer -count=0 NuwikiDiaryIndex call nuwiki#commands#diary_index(<count>)
command! -buffer -count=0 NuwikiDiaryToday call nuwiki#commands#diary_today(<count>)
command! -buffer -count=0 NuwikiDiaryYesterday call nuwiki#commands#diary_yesterday(<count>)
command! -buffer -count=0 NuwikiDiaryTomorrow call nuwiki#commands#diary_tomorrow(<count>)
command! -buffer NuwikiDiaryNext call nuwiki#commands#diary_next()
command! -buffer NuwikiDiaryPrev call nuwiki#commands#diary_prev()
command! -buffer NuwikiFollowLink call nuwiki#commands#follow_link_or_create()
@@ -159,10 +159,10 @@ if !has('nvim')
command! -buffer NuwikiNextLink call nuwiki#commands#link_next()
command! -buffer NuwikiPrevLink call nuwiki#commands#link_prev()
command! -buffer NuwikiBaddLink call nuwiki#commands#badd_link()
command! -buffer NuwikiMakeDiaryNote call nuwiki#commands#diary_today()
command! -buffer NuwikiTabMakeDiaryNote call nuwiki#commands#diary_today_tab()
command! -buffer NuwikiMakeYesterdayDiaryNote call nuwiki#commands#diary_yesterday()
command! -buffer NuwikiMakeTomorrowDiaryNote call nuwiki#commands#diary_tomorrow()
command! -buffer -count=0 NuwikiMakeDiaryNote call nuwiki#commands#diary_today(<count>)
command! -buffer -count=0 NuwikiTabMakeDiaryNote call nuwiki#commands#diary_today_tab(<count>)
command! -buffer -count=0 NuwikiMakeYesterdayDiaryNote call nuwiki#commands#diary_yesterday(<count>)
command! -buffer -count=0 NuwikiMakeTomorrowDiaryNote call nuwiki#commands#diary_tomorrow(<count>)
command! -buffer NuwikiDiaryGenerateLinks call nuwiki#commands#diary_generate_index()
command! -buffer NuwikiDiaryNextDay call nuwiki#commands#diary_next()
command! -buffer NuwikiDiaryPrevDay call nuwiki#commands#diary_prev()
@@ -395,11 +395,11 @@ endif
command! -buffer -count=0 VimwikiIndex lua require('nuwiki.commands').wiki_index(<count>)
command! -buffer -count=0 VimwikiTabIndex lua require('nuwiki.commands').wiki_tab_index(<count>)
command! -buffer VimwikiUISelect lua require('nuwiki.commands').wiki_ui_select()
command! -buffer VimwikiDiaryIndex lua require('nuwiki.commands').diary_index()
command! -buffer VimwikiMakeDiaryNote lua require('nuwiki.commands').diary_today()
command! -buffer VimwikiTabMakeDiaryNote lua require('nuwiki.commands').diary_today_tab()
command! -buffer VimwikiMakeYesterdayDiaryNote lua require('nuwiki.commands').diary_yesterday()
command! -buffer VimwikiMakeTomorrowDiaryNote lua require('nuwiki.commands').diary_tomorrow()
command! -buffer -count=0 VimwikiDiaryIndex lua require('nuwiki.commands').diary_index(<count>)
command! -buffer -count=0 VimwikiMakeDiaryNote lua require('nuwiki.commands').diary_today(<count>)
command! -buffer -count=0 VimwikiTabMakeDiaryNote lua require('nuwiki.commands').diary_today_tab(<count>)
command! -buffer -count=0 VimwikiMakeYesterdayDiaryNote lua require('nuwiki.commands').diary_yesterday(<count>)
command! -buffer -count=0 VimwikiMakeTomorrowDiaryNote lua require('nuwiki.commands').diary_tomorrow(<count>)
command! -buffer VimwikiDiaryNextDay lua require('nuwiki.commands').diary_next()
command! -buffer VimwikiDiaryPrevDay lua require('nuwiki.commands').diary_prev()
command! -buffer VimwikiDiaryGenerateLinks lua require('nuwiki.commands').diary_generate_index()
@@ -471,10 +471,10 @@ command! -buffer VimwikiCatUrl lua require('nuwiki.commands'
command! -buffer -count=0 NuwikiIndex lua require('nuwiki.commands').wiki_index(<count>)
command! -buffer -count=0 NuwikiTabIndex lua require('nuwiki.commands').wiki_tab_index(<count>)
command! -buffer NuwikiUISelect lua require('nuwiki.commands').wiki_ui_select()
command! -buffer NuwikiDiaryIndex lua require('nuwiki.commands').diary_index()
command! -buffer NuwikiDiaryToday lua require('nuwiki.commands').diary_today()
command! -buffer NuwikiDiaryYesterday lua require('nuwiki.commands').diary_yesterday()
command! -buffer NuwikiDiaryTomorrow lua require('nuwiki.commands').diary_tomorrow()
command! -buffer -count=0 NuwikiDiaryIndex lua require('nuwiki.commands').diary_index(<count>)
command! -buffer -count=0 NuwikiDiaryToday lua require('nuwiki.commands').diary_today(<count>)
command! -buffer -count=0 NuwikiDiaryYesterday lua require('nuwiki.commands').diary_yesterday(<count>)
command! -buffer -count=0 NuwikiDiaryTomorrow lua require('nuwiki.commands').diary_tomorrow(<count>)
command! -buffer NuwikiDiaryNext lua require('nuwiki.commands').diary_next()
command! -buffer NuwikiDiaryPrev lua require('nuwiki.commands').diary_prev()
command! -buffer NuwikiDiaryGenerateLinks lua require('nuwiki.commands').diary_generate_index()
@@ -504,10 +504,10 @@ command! -buffer -nargs=1 -complete=customlist,nuwiki#complete#pages NuwikiGoto
command! -buffer NuwikiNextLink lua require('nuwiki.commands').link_next()
command! -buffer NuwikiPrevLink lua require('nuwiki.commands').link_prev()
command! -buffer NuwikiBaddLink lua require('nuwiki.commands').badd_link()
command! -buffer NuwikiMakeDiaryNote lua require('nuwiki.commands').diary_today()
command! -buffer NuwikiTabMakeDiaryNote lua require('nuwiki.commands').diary_today_tab()
command! -buffer NuwikiMakeYesterdayDiaryNote lua require('nuwiki.commands').diary_yesterday()
command! -buffer NuwikiMakeTomorrowDiaryNote lua require('nuwiki.commands').diary_tomorrow()
command! -buffer -count=0 NuwikiMakeDiaryNote lua require('nuwiki.commands').diary_today(<count>)
command! -buffer -count=0 NuwikiTabMakeDiaryNote lua require('nuwiki.commands').diary_today_tab(<count>)
command! -buffer -count=0 NuwikiMakeYesterdayDiaryNote lua require('nuwiki.commands').diary_yesterday(<count>)
command! -buffer -count=0 NuwikiMakeTomorrowDiaryNote lua require('nuwiki.commands').diary_tomorrow(<count>)
command! -buffer NuwikiDiaryNextDay lua require('nuwiki.commands').diary_next()
command! -buffer NuwikiDiaryPrevDay lua require('nuwiki.commands').diary_prev()
command! -buffer Nuwiki2HTML lua require('nuwiki.commands').export_current()