# nuwiki A Vim/Neovim plugin providing full vimwiki syntax support, implemented as a Rust-based language server (LSP). > **Status:** Phase 7 (semantic tokens) complete. The server now serves > `semanticTokens/full` + `/range` with custom `vimwiki*` token types and > `level1`..`level6` + `centered` modifiers. Navigation features and > editor glue still pending. See [`SPEC.md`](./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 | ⏳ next | | 9 | Editor Glue | ⏳ | | 10 | CI/CD release pipeline | ⏳ | ## 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 ```sh cargo build --workspace cargo test --workspace ``` MSRV: Rust 1.83. ## License Dual-licensed under either of: - Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE)) - MIT license ([`LICENSE-MIT`](./LICENSE-MIT)) 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.