https://github.com/nvim-neorg/rust-norg
A robust parser for Norg for tools that don't use tree-sitter.
https://github.com/nvim-neorg/rust-norg
Last synced: about 1 year ago
JSON representation
A robust parser for Norg for tools that don't use tree-sitter.
- Host: GitHub
- URL: https://github.com/nvim-neorg/rust-norg
- Owner: nvim-neorg
- Created: 2024-05-18T15:43:53.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-02T16:00:14.000Z (over 1 year ago)
- Last Synced: 2025-04-05T01:32:12.827Z (about 1 year ago)
- Language: Rust
- Size: 135 KB
- Stars: 17
- Watchers: 4
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-neorg - rust-norg - A robust parser for Norg for tools that don't use tree-sitter. (Parsers)
README
## (WIP) Robust Rust Parser for Norg
This project serves one purpose: parse norg as *best* as possible. The `tree-sitter` norg parser is designed for speed at the cost of error recovery and accuracy.
`rust-norg` uses `chumksy` under the hood and trades off some speed for robust parsing and errors. The parser is built to recover from virtually any error thanks
to us splitting the parsing into three distinct stages, something that `tree-sitter` is incapable of doing.
The parser currently supports all block-level syntax apart from detached modifier extensions. Inline markup is not yet supported.
All other syntax is properly parsed with spec-defined edge cases.
## Future of this Project
Currently the parser is being developed as a proof-of-concept. Once it's complete, I'd like to extract this into a library for others to use. A proper test suite is also a must-have.