Files
nuwiki/README.md
T

67 lines
2.0 KiB
Markdown
Raw Normal View History

# nuwiki
A Vim/Neovim plugin providing full vimwiki syntax support, implemented as a
Rust-based language server (LSP).
> **Status:** Phase 6 (LSP foundation) complete. `nuwiki-ls` speaks LSP over
> stdio: didOpen/didChange/didClose, parse diagnostics, nested document
> outline. Editor glue, semantic tokens, and navigation still pending.
See [`SPEC.md`](./SPEC.md) for the full project specification.
2026-05-10 17:20:46 +00:00
## Implementation status
| Phase | Name | Status |
|---|---|---|
| 0 | Scaffolding | ✅ done |
| 1 | Core AST | ✅ done |
| 2 | Syntax Plugin Interface | ✅ done |
| 3 | Vimwiki Lexer | ✅ done |
2026-05-10 17:58:41 +00:00
| 4 | Vimwiki Parser | ✅ done |
2026-05-10 19:12:01 +00:00
| 5 | Renderer | ✅ done |
| 6 | LSP Foundation | ✅ done |
| 7 | Semantic Tokens | ⏳ next |
2026-05-10 17:20:46 +00:00
| 8 | Navigation | ⏳ |
| 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.