Fix https://github.com/nvim-treesitter/nvim-treesitter/issues/887
(block_node) includes more nodes to fold, test with:
```yaml
days:
Monday:
- test: example
Tuesday:
- test: example
Wednesday:
- test: example
- test: example
Thursday:
- test: example
Friday:
- test: example
- foo: |
One
Two
Three
```
Since hasn't been much discussion around
https://github.com/nvim-treesitter/nvim-treesitter/issues/806.
I'm just porting the injection queries.
I've been using this for a while now.
Things I've noticed:
- Due that rst uses indentation for its syntax,
everything is treated as an block quote (but it looks good).
This can be solved by having a predicate like `#dedent!`.
- Looks like there is a bug in how the injected content is extracted
```
def foo():
"""Foo bar"""
```
That would be parsed as a section title for some reason,
but it's a paragraph.
In rst it would be a title if the content was:
```
"""
Foo bar
"""
```
If the content is
```
"""Foo bar"""
```
That's just a paragraph.
I'll try to debug that from the neovim side next week or so.
- The directive type does not longer includes `::`.
- The content of the directives is not longer interpreted as rst,
but it uses language injection for it.
- Fix a query to allow to capture targets without link.
- Reset the content of the math role so it can be highlighted by the
injection instead.
Problems I found:
- Capturing the same node with @language and @content will raise an
error.
```
Error detected while processing FileType Autocommands for "*":
E5108: Error executing lua /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:331: table index is nil
```
Harcoding the language works, Using the offset predicate doesn't work
either `(#offset! 0 0 1 0)` nor `(#offset! 0 0 0 5)`
- Generating the grammar using `tree-sitter-cli@0.17.x` breaks
nvim-treesitter, `@0.16.9` works.