fix(client): P2 diary tab collision + <M-CR> badd-link parity
Two upstream-parity keymap fixes (confirmed against upstream ftplugin/vimwiki.vim): 1. <Leader>w<Leader>t collision — nuwiki bound both <Leader>w<Leader>t and <Leader>w<Leader>m to tomorrow's diary. Upstream: <Leader>w<Leader>t opens today's diary in a NEW TAB, <Leader>w<Leader>m opens tomorrow. <Leader>w <Leader>t now calls diary_today_tab; <Leader>w<Leader>m stays tomorrow. 2. <M-CR> badd-link — adding a link target to the buffer list was mouse-only (<MiddleMouse>) / command-only (:VimwikiBaddLink). Upstream binds <M-CR> -> VimwikiBaddLink. Added normal-mode <M-CR> -> badd_link to the links group of both clients. Both clients (lua/nuwiki/keymaps.lua, ftplugin/vimwiki.vim); README + doc/ nuwiki.txt updated. Tests: map[n].<M-CR> in both harnesses; diary.leader_t_opens_today_in_tab / diary.leader_m_opens_tomorrow (vim). nvim 270, vim 263+18, all green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -184,6 +184,7 @@ endfunction
|
||||
|
||||
let s:mapping_surface = [
|
||||
\ ['<CR>', 'n'], ['<S-CR>', 'n'], ['<C-CR>', 'n'], ['<C-S-CR>', 'n'],
|
||||
\ ['<M-CR>', 'n'],
|
||||
\ ['<BS>', 'n'], ['<Tab>', 'n'], ['<S-Tab>', 'n'], ['+', 'nx'],
|
||||
\ ['<C-Space>', 'nx'], ['<C-@>', 'nx'], ['<Nul>', 'nx'],
|
||||
\ ['gnt', 'n'], ['gln', 'nx'], ['glp', 'nx'], ['glx', 'nx'],
|
||||
@@ -221,6 +222,18 @@ for s:entry in s:mapping_surface
|
||||
endfor
|
||||
endfor
|
||||
|
||||
" ===== Diary <Leader>w<Leader>{t,m} target (collision fix) =====
|
||||
" Upstream: <Leader>w<Leader>t = today in a new tab, <Leader>w<Leader>m =
|
||||
" tomorrow. nuwiki used to bind both to tomorrow.
|
||||
call s:record(
|
||||
\ maparg('<Leader>w<Leader>t', 'n') =~# 'diary_today_tab' ? 1 : 0,
|
||||
\ 'diary.leader_t_opens_today_in_tab',
|
||||
\ 'rhs=' . maparg('<Leader>w<Leader>t', 'n'))
|
||||
call s:record(
|
||||
\ maparg('<Leader>w<Leader>m', 'n') =~# 'diary_tomorrow' ? 1 : 0,
|
||||
\ 'diary.leader_m_opens_tomorrow',
|
||||
\ 'rhs=' . maparg('<Leader>w<Leader>m', 'n'))
|
||||
|
||||
" ===== Header nav (pure VimL) =====
|
||||
|
||||
call s:run('headers.]]_jumps_to_next', {
|
||||
|
||||
@@ -206,6 +206,7 @@ vim.defer_fn(function()
|
||||
local mapping_surface = {
|
||||
-- Links
|
||||
{ '<CR>', 'n' }, { '<S-CR>', 'n' }, { '<C-CR>', 'n' }, { '<C-S-CR>', 'n' },
|
||||
{ '<M-CR>', 'n' },
|
||||
{ '<BS>', 'n' }, { '<Tab>', 'n' }, { '<S-Tab>', 'n' }, { '+', 'nx' },
|
||||
-- Lists
|
||||
{ '<C-Space>', 'nx' }, { '<C-@>', 'nx' }, { '<Nul>', 'nx' },
|
||||
|
||||
@@ -81,8 +81,12 @@ fix site.
|
||||
|
||||
## P2 — Moderate (real users hit these)
|
||||
|
||||
- [ ] **`<Leader>w<Leader>t` collision** — upstream = today-in-new-tab; nuwiki =
|
||||
tomorrow's diary. _Fix:_ `lua/nuwiki/keymaps.lua`, `ftplugin/vimwiki.vim`.
|
||||
- [x] **`<Leader>w<Leader>t` collision** — upstream = today-in-new-tab; nuwiki
|
||||
bound both `<Leader>w<Leader>t` and `<Leader>w<Leader>m` to tomorrow's diary.
|
||||
_Fix:_ `<Leader>w<Leader>t` now calls `diary_today_tab` (today in a new tab),
|
||||
`<Leader>w<Leader>m` stays tomorrow — exact upstream parity
|
||||
(`lua/nuwiki/keymaps.lua`, `ftplugin/vimwiki.vim`; docs + README updated).
|
||||
Covered by `diary.leader_t_opens_today_in_tab` / `diary.leader_m_opens_tomorrow`.
|
||||
- [ ] **Generated-section captions hardcoded** — `toc_header` /
|
||||
`toc_header_level`, `links_header`, `tags_header` (+levels).
|
||||
_Fix:_ `crates/nuwiki-lsp/src/config.rs` + server TOC/generate renderers.
|
||||
@@ -95,8 +99,12 @@ fix site.
|
||||
converter hook + export URL prefix. _Fix:_ `config.rs` `HtmlConfig`.
|
||||
- [ ] **`map_prefix`** — `<Leader>w` hardcoded across the map layer.
|
||||
_Fix:_ `plugin/nuwiki.vim`, `lua/nuwiki/keymaps.lua`, `ftplugin/vimwiki.vim`.
|
||||
- [ ] **`<M-CR>` badd-link** — missing (badd is mouse-only via `<MiddleMouse>` /
|
||||
`:VimwikiBaddLink`). _Fix:_ `lua/nuwiki/keymaps.lua`, `ftplugin/vimwiki.vim`.
|
||||
- [x] **`<M-CR>` badd-link** — was mouse-only (`<MiddleMouse>`) / command-only
|
||||
(`:VimwikiBaddLink`); upstream binds `<M-CR>` → `VimwikiBaddLink` (confirmed
|
||||
against upstream `ftplugin/vimwiki.vim`). _Fix:_ added normal-mode `<M-CR>` →
|
||||
`badd_link` in the links group of both clients (`lua/nuwiki/keymaps.lua`,
|
||||
`ftplugin/vimwiki.vim`; docs + README updated). Covered by `map[n].<M-CR>` in
|
||||
both keymap harnesses.
|
||||
- [ ] **`diary_caption_level` default divergence** — nuwiki `1` vs vimwiki `0`.
|
||||
_Fix:_ `config.rs:291` (and defaults in `lua/nuwiki/config.lua`).
|
||||
- [ ] **`diary_start_week_day`** — **wrongly removed** in `c63ec67`. The removal
|
||||
|
||||
Reference in New Issue
Block a user