reStructuredText grammar for tree-sitter
npm install tree-sitter-rst
reStructuredText grammar for tree-sitter.
Based on the specification from
Check the playground at
Note: this grammar is still under development, a lot of things may change!
- Allow lists with blank lines between items
- Refactor parse citation and footer reference
- Nested line blocks
- Option lists
- Add some nodes to inline?
- Check if there is a way to re-implement some nodes to JS instead of C?
- A definition list with classifiers can't be separated by a blank line.
- tests, tests, and more tests!
- Nodes that contain body elements inside (like lists or directives),
are inside a node named body.
- In RST sections are a big node that contains body elements,
here they are just a node containing the title.
This is to avoid guessing the level of subtitles.
- In RST standalone hyperlinks are reference nodes,
here they are standalone_hyperlink nodes.
This is to avoid confusion with inline references nodes
(that are a reference node).
- Literal blocks are part of the paragraph they precede, not a separate node,
except for the expanded form of literal blocks.
- In rst directives only have "body" node,
here the body is parsed as arguments/options/content.
- Implement tables?
- Validate length of adornments in sections?
The spec doesn't mention this, but this paragraph does.
> The underline/overline must be at least as long as the title text.
https://docutils.sourceforge.io/docs/user/rst/quickstart.html
- nvim-treesitter
- helix
- zed-rst
- Yours?
Check the CONTRIBUTING.md file
- tree-sitter-comment: grammar for comment tags like TODO, FIXME(user).