gffranco 9d86218b13
CI / cargo fmt --check (push) Successful in 25s
CI / cargo clippy (push) Successful in 1m5s
CI / cargo test (push) Successful in 1m12s
fix(keymap): C-Space toggle fires across all terminal byte spellings
User reported Ctrl+Space didn't toggle list items. Three things
contributed:

1. **Terminal byte ambiguity.** Different terminals encode Ctrl+Space
   differently — GUI / kitty protocol sends `<C-Space>`, xterm and
   most legacy terms send NUL which Vim sees as `<C-@>` (or, in some
   Neovim builds, `<Nul>` in keymap.lhs). The previous keymap
   registered only `<C-Space>` + `<C-@>`. Added the `<Nul>` alias too
   (both Lua and VimL paths) so the binding fires regardless of what
   byte the user's terminal produces.

2. **Deprecated `vim.lsp.util.make_position_params`.** Neovim 0.12
   requires `position_encoding` explicitly. The old no-arg call now
   prints a deprecation warning, and in stricter setups returns nil
   — which made the command's `arguments` malformed and the
   `executeCommand` request silently fail. `position_params()` now
   pulls `offset_encoding` from the resolved client and passes both
   args, with a `pcall`-guarded fallback to the no-arg form for
   Neovim < 0.10.

3. **Deprecated `client.request(...)` dot-call.** Same Neovim 0.12
   change — `Client:request()` is the method form. Use the colon
   call now; both arities are preserved for back-compat.

Verified end-to-end: feeding all three of `<C-Space>` / `<C-@>` /
`<Nul>` via `nvim_feedkeys` toggles the checkbox; `:messages` no
longer carries the deprecation warnings. 381 tests still pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 01:28:23 +00:00
2026-05-11 21:57:05 +00:00
2026-05-11 21:57:05 +00:00

nuwiki

A Vim/Neovim plugin providing full vimwiki syntax support, implemented as a Rust-based language server (LSP).

Status: v1.0 (Phases 010) shipped — parsing, highlighting, navigation, editor glue, and release pipeline are all live. v1.1 (Phases 1119) in progress, closing the gap to a full vimwiki replacement: tags, diary, server-side edit commands, link health, HTML export commands, multi-wiki, and the :Vimwiki* keymap layer.

See SPEC.md for the full project specification.

Implementation status

v1.0 — foundation

Phase Name Status
0 Scaffolding done
1 Core AST done
2 Syntax Plugin Interface done
3 Vimwiki Lexer done
4 Vimwiki Parser done
5 Renderer done
6 LSP Foundation done
7 Semantic Tokens done
8 Navigation done
9 Editor Glue done
10 CI/CD release pipeline done

v1.1 — full vimwiki replacement

Phase Name Status
11 Plumbing prerequisites done
12 Tags done
13 Workspace edits + executeCommand done
14 List & table edit commands done (focused subset; table/list-renumber/colorize deferred)
15 Link health + TOC/index generation done
16 Diary done
17 HTML export commands done
18 Multi-wiki done
19 Editor glue v2 (:Vimwiki* compat, keymaps, text objects, folding) done

Repository layout

nuwiki/
├── Cargo.toml              workspace root
├── crates/
│   ├── nuwiki-core/        parser, AST, renderer (no editor deps)
│   ├── nuwiki-lsp/         LSP protocol bridge
│   └── nuwiki-ls/          binary that speaks LSP over stdio
├── plugin/                 universal Vim/Neovim entry point
├── lua/nuwiki/             Neovim Lua glue
├── autoload/nuwiki/        Vim VimL glue
├── ftdetect/               filetype detection for .wiki
├── ftplugin/               per-buffer filetype settings
├── syntax/                 static fallback highlighting
├── doc/                    `:h nuwiki`
├── scripts/                build-time helpers
└── .gitea/workflows/       CI / release pipelines

Building

cargo build --workspace
cargo test  --workspace

MSRV: Rust 1.83.

License

Dual-licensed under either of:

at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this work shall be dual licensed as above, without any additional terms or conditions.

S
Description
No description provided
Readme 1.1 MiB
v0.5.2 Latest
2026-07-02 12:02:20 +00:00
Languages
Vim Script 49.1%
Lua 36.7%
Shell 11.2%
HTML 3%