1. This function simplifies an unnecessary lua-match usage.
2. Fixes an accidental change, where "cls" was changed to "class" (fe4f320b66)
3. Match functions, which have have a decorator.
4. But exclude @staticmethod
5. Only highlight "cls" as @variable.builtin when the decorator is @classmethod
This might be a bit to complicated and some of this not to useful,
as this existing rule:
```scm
((identifier) @variable.builtin
(#eq? @variable.builtin "self"))
```
overwrites the queries anyway.
* Comment: use `@combined` to create just one tree per buffer
There is no need to create a tree per line/block for comments.
Should fix https://github.com/nvim-treesitter/nvim-treesitter/issues/1251
* Add injections for scss
* Fix jsonc
* Combine jsdoc
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.
These aren't really definitions and are being show in the definitions
list. We aren't using them at the moment, we could use another group or
query file.
- Get rid of @self
- Highlight methods correctly
- Highlight self as the first parameter of a method
- Use new syntax (# for predicates, (_) instead of (*) for wildcards)