test(config): cover link_severity in parity harnesses and docs
CI / cargo fmt --check (push) Successful in 23s
CI / cargo clippy (push) Successful in 31s
CI / cargo test (push) Successful in 31s
CI / editor keymaps (push) Successful in 1m28s

Both editor harnesses now emit diagnostic.link_severity and exercise a
non-default override ('error') in the sample scenario, diffed against the
shared golden. Drop the README "not wired" caveat now that the value flows
through, and document the g:nuwiki_link_severity global.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-30 21:53:56 -03:00
parent 5ee72c40e2
commit e3f28d7dfc
4 changed files with 14 additions and 7 deletions
+3 -6
View File
@@ -255,6 +255,7 @@ plugin:
let g:nuwiki_wiki_root = '~/vimwiki' let g:nuwiki_wiki_root = '~/vimwiki'
let g:nuwiki_file_extension = '.wiki' let g:nuwiki_file_extension = '.wiki'
let g:nuwiki_log_level = 'warn' let g:nuwiki_log_level = 'warn'
let g:nuwiki_link_severity = 'warn' " 'off'|'hint'|'warn'|'error'
let g:nuwiki_no_default_mappings = 0 " set to 1 to skip the keymap layer let g:nuwiki_no_default_mappings = 0 " set to 1 to skip the keymap layer
let g:nuwiki_no_folding = 0 " set to 1 to skip foldexpr setup let g:nuwiki_no_folding = 0 " set to 1 to skip foldexpr setup
let g:nuwiki_mouse_mappings = 0 " set to 1 to enable mouse maps let g:nuwiki_mouse_mappings = 0 " set to 1 to enable mouse maps
@@ -273,7 +274,7 @@ let g:nuwiki_mouse_mappings = 0 " set to 1 to enable mouse maps
| `folding` | string | `'lsp'` | `'lsp'` \| `'expr'` \| `'off'` | | `folding` | string | `'lsp'` | `'lsp'` \| `'expr'` \| `'off'` |
| `wikis` | list of tables | `nil` | per-wiki tables (see below); wins over the single-wiki shorthand | | `wikis` | list of tables | `nil` | per-wiki tables (see below); wins over the single-wiki shorthand |
| `mappings` | table | all on | keymap subgroups (see below) | | `mappings` | table | all on | keymap subgroups (see below) |
| `diagnostic` | table | — | `{ link_severity = … }` (see note below) | | `diagnostic` | table | `{ link_severity = 'warn' }` | `link_severity`: `'off'` \| `'hint'` \| `'warn'` \| `'error'` |
#### `mappings` subgroups #### `mappings` subgroups
@@ -340,15 +341,11 @@ For users configuring without Lua.
| `g:nuwiki_wiki_root` | `'~/vimwiki'` | single-wiki root | | `g:nuwiki_wiki_root` | `'~/vimwiki'` | single-wiki root |
| `g:nuwiki_file_extension` | `'.wiki'` | wiki file extension | | `g:nuwiki_file_extension` | `'.wiki'` | wiki file extension |
| `g:nuwiki_log_level` | `'warn'` | `error` \| `warn` \| `info` \| `debug` | | `g:nuwiki_log_level` | `'warn'` | `error` \| `warn` \| `info` \| `debug` |
| `g:nuwiki_link_severity` | `'warn'` | broken-link severity: `off` \| `hint` \| `warn` \| `error` |
| `g:nuwiki_no_default_mappings` | `0` | `1` skips the keymap layer | | `g:nuwiki_no_default_mappings` | `0` | `1` skips the keymap layer |
| `g:nuwiki_no_folding` | `0` | `1` skips foldexpr setup | | `g:nuwiki_no_folding` | `0` | `1` skips foldexpr setup |
| `g:nuwiki_mouse_mappings` | `0` | `1` enables mouse maps | | `g:nuwiki_mouse_mappings` | `0` | `1` enables mouse maps |
> **Note:** `diagnostic.link_severity` is accepted in the config surface but
> the server currently always uses its default (`'warn'`); the client value is
> not yet wired through. Track this if you rely on changing broken-link
> severity.
--- ---
## Usage ## Usage
+2
View File
@@ -3,11 +3,13 @@ wiki_root=~/vimwiki
file_extension=.wiki file_extension=.wiki
syntax=vimwiki syntax=vimwiki
log_level=warn log_level=warn
diagnostic.link_severity=warn
[sample] [sample]
wiki_root=/tmp/base wiki_root=/tmp/base
file_extension=.md file_extension=.md
syntax=vimwiki syntax=vimwiki
log_level=debug log_level=debug
diagnostic.link_severity=error
wikis[0].diary_rel_path=journal wikis[0].diary_rel_path=journal
wikis[0].file_extension=.wiki wikis[0].file_extension=.wiki
wikis[0].index=home wikis[0].index=home
+5 -1
View File
@@ -15,6 +15,9 @@ function! s:dump(payload) abort
call add(s:lines, 'file_extension=' . a:payload.file_extension) call add(s:lines, 'file_extension=' . a:payload.file_extension)
call add(s:lines, 'syntax=' . a:payload.syntax) call add(s:lines, 'syntax=' . a:payload.syntax)
call add(s:lines, 'log_level=' . a:payload.log_level) call add(s:lines, 'log_level=' . a:payload.log_level)
if has_key(a:payload, 'diagnostic')
call add(s:lines, 'diagnostic.link_severity=' . a:payload.diagnostic.link_severity)
endif
if has_key(a:payload, 'wikis') if has_key(a:payload, 'wikis')
let l:i = 0 let l:i = 0
for l:w in a:payload.wikis for l:w in a:payload.wikis
@@ -28,7 +31,7 @@ endfunction
" Scenario 1: defaults (no globals set). " Scenario 1: defaults (no globals set).
unlet! g:nuwiki_wiki_root g:nuwiki_file_extension g:nuwiki_syntax unlet! g:nuwiki_wiki_root g:nuwiki_file_extension g:nuwiki_syntax
unlet! g:nuwiki_log_level g:nuwiki_wikis unlet! g:nuwiki_log_level g:nuwiki_wikis g:nuwiki_link_severity
call add(s:lines, '[default]') call add(s:lines, '[default]')
call s:dump(nuwiki#lsp#settings()) call s:dump(nuwiki#lsp#settings())
@@ -37,6 +40,7 @@ let g:nuwiki_wiki_root = '/tmp/base'
let g:nuwiki_file_extension = '.md' let g:nuwiki_file_extension = '.md'
let g:nuwiki_syntax = 'vimwiki' let g:nuwiki_syntax = 'vimwiki'
let g:nuwiki_log_level = 'debug' let g:nuwiki_log_level = 'debug'
let g:nuwiki_link_severity = 'error'
let g:nuwiki_wikis = [ let g:nuwiki_wikis = [
\ { 'name': 'personal', 'root': '/tmp/personal', \ { 'name': 'personal', 'root': '/tmp/personal',
\ 'file_extension': '.wiki', 'index': 'home', \ 'file_extension': '.wiki', 'index': 'home',
+4
View File
@@ -27,6 +27,9 @@ local function dump(payload)
emit('file_extension=' .. tostring(payload.file_extension)) emit('file_extension=' .. tostring(payload.file_extension))
emit('syntax=' .. tostring(payload.syntax)) emit('syntax=' .. tostring(payload.syntax))
emit('log_level=' .. tostring(payload.log_level)) emit('log_level=' .. tostring(payload.log_level))
if payload.diagnostic then
emit('diagnostic.link_severity=' .. tostring(payload.diagnostic.link_severity))
end
if payload.wikis then if payload.wikis then
for i, w in ipairs(payload.wikis) do for i, w in ipairs(payload.wikis) do
local keys = {} local keys = {}
@@ -53,6 +56,7 @@ config.apply({
file_extension = '.md', file_extension = '.md',
syntax = 'vimwiki', syntax = 'vimwiki',
log_level = 'debug', log_level = 'debug',
diagnostic = { link_severity = 'error' },
wikis = { wikis = {
{ {
name = 'personal', name = 'personal',