gffranco f435679814
CI / cargo fmt --check (push) Successful in 27s
CI / cargo clippy (push) Successful in 1m18s
CI / cargo test (push) Successful in 1m27s
spec: define v1.1 — full vimwiki replacement (Phases 11–18)
v1.0 shipped parsing + highlighting + navigation; the gap-analysis vs
github.com/vimwiki/vimwiki shows nuwiki covers ~95% of the syntax but
0% of the daily-authoring command surface (≈40 :Vimwiki* commands and
≈60 keymaps), the diary, tags, link health, HTML export commands, and
multi-wiki. v1.1 closes that gap without architectural changes — every
new editing operation lands as an LSP executeCommand returning a
WorkspaceEdit, so nuwiki-core stays the single source of truth.

Spec additions:

- Status line: v1.0 shipped; v1.1 in design.
- §1: v1.1 scope summarised; multi-wiki moved out of "non-goals (v1.0)"
  and into v1.1.
- §10: 8 new phase rows (11–18) under a v1.1 divider.
  - 11 Tags, 12 Workspace edits + executeCommand, 13 List/table edit
    commands, 14 Link health + TOC/index generation, 15 Diary,
    16 HTML export commands, 17 Multi-wiki, 18 Editor glue v2.
- §11: 8 new pending decisions (P10–P17): command namespace, tag
  syntax, list-edit transport, multi-wiki config shape, folding
  mechanism, diary path scheme, v1.0 config back-compat, markdown
  syntax inclusion.
- §12: new top-level v1.1 plan with 12 subsections covering stability
  commitment, tags spec (AST + index), workspace-edit semantics,
  ~15 nuwiki.* edit commands, link-health diagnostics, diary path
  conventions + commands, HTML export commands + per-wiki options,
  multi-wiki schema, full editor-glue v2 (:Vimwiki* compatibility
  table, default keymaps, text objects, folding, insert-mode behaviour,
  health-check additions), updated user-config schema example,
  §9 syntax checklist additions (tags, hex colour, table alignment,
  multi-line lists), CI/CD notes.

v1.0 stability is preserved: AST + Visitor + LSP capabilities +
HtmlRenderer output + v1.0 config keys are all backward-compatible.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 01:19:36 +00:00

nuwiki

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

Status: All phases (010) complete. v1 feature set landed: editor-independent core, vimwiki lexer + parser, HTML renderer, tower-lsp server with diagnostics + outline + semantic tokens + navigation + workspace index, plugin glue, and release pipeline.

See SPEC.md for the full project specification.

Implementation status

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

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%