mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
fix(jinja): assign highlights to all variables and functions
The majority of jinja variables aren't assigned any highlights at all. Assign @variable to all identifiers. Jinja filters without parameters are not highlighted as functions: add a query for these. Refine the existing @variable.member to only capture identifiers instead of broader nodes.
This commit is contained in:
parent
1e3b7562c2
commit
20d77c2e5b
4 changed files with 77 additions and 6 deletions
|
|
@ -71,11 +71,7 @@
|
||||||
"as"
|
"as"
|
||||||
] @keyword.import
|
] @keyword.import
|
||||||
|
|
||||||
(import_statement
|
(identifier) @variable
|
||||||
(identifier) @variable)
|
|
||||||
|
|
||||||
(import_as
|
|
||||||
(identifier) @variable)
|
|
||||||
|
|
||||||
[
|
[
|
||||||
"if"
|
"if"
|
||||||
|
|
@ -109,12 +105,34 @@
|
||||||
|
|
||||||
(expression
|
(expression
|
||||||
"."
|
"."
|
||||||
(expression)+ @variable.member)
|
(expression
|
||||||
|
(binary_expression
|
||||||
|
.
|
||||||
|
(unary_expression
|
||||||
|
(primary_expression
|
||||||
|
(identifier) @variable.member)))))
|
||||||
|
|
||||||
|
(expression
|
||||||
|
"."
|
||||||
|
(expression
|
||||||
|
(binary_expression
|
||||||
|
(binary_expression
|
||||||
|
(unary_expression
|
||||||
|
(primary_expression
|
||||||
|
(identifier) @variable.member))))))
|
||||||
|
|
||||||
(assignment_expression
|
(assignment_expression
|
||||||
"."
|
"."
|
||||||
(identifier)+ @variable.member)
|
(identifier)+ @variable.member)
|
||||||
|
|
||||||
|
; jinja filters
|
||||||
|
(binary_expression
|
||||||
|
(binary_operator
|
||||||
|
"|")
|
||||||
|
(unary_expression
|
||||||
|
(primary_expression
|
||||||
|
(identifier) @function.call)))
|
||||||
|
|
||||||
(inline_trans
|
(inline_trans
|
||||||
"_" @function.builtin)
|
"_" @function.builtin)
|
||||||
|
|
||||||
|
|
|
||||||
19
tests/query/highlights/jinja/filters.jinja
Normal file
19
tests/query/highlights/jinja/filters.jinja
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{{ name|striptags|title }}
|
||||||
|
{# ^^^^ @variable #}
|
||||||
|
{# ^^^^^ @function.call #}
|
||||||
|
{# ^^^^^ @function.call #}
|
||||||
|
|
||||||
|
{{ listx|join(', ') }}
|
||||||
|
{# ^^^^^ @variable #}
|
||||||
|
{# ^^^^ @function.call #}
|
||||||
|
{# ^^^^ @string #}
|
||||||
|
|
||||||
|
{{ listx|join(str) }}
|
||||||
|
{# ^^^^^ @variable #}
|
||||||
|
{# ^^^^ @function.call #}
|
||||||
|
{# ^^^ @variable.parameter #}
|
||||||
|
|
||||||
|
{{ foo.bar|random }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
{# ^^^^^^ @function.call #}
|
||||||
13
tests/query/highlights/jinja/tests.jinja
Normal file
13
tests/query/highlights/jinja/tests.jinja
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{% if loop.index is divisibleby 3 %}
|
||||||
|
{# ^^^^ @variable #}
|
||||||
|
{# ^^^^^ @variable.member #}
|
||||||
|
{# ^^^^^^^^^^ @keyword.operator #}
|
||||||
|
|
||||||
|
{% if loop.index is divisibleby(3) %}
|
||||||
|
{# ^^^^ @variable #}
|
||||||
|
{# ^^^^^ @variable.member #}
|
||||||
|
|
||||||
|
{% if foo.bar.baz is divisibleby 3 %}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
21
tests/query/highlights/jinja/variables.jinja
Normal file
21
tests/query/highlights/jinja/variables.jinja
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{{ foo }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
|
||||||
|
{{ foo.bar }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
|
||||||
|
{{ foo['bar'] }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^^^ @string #}
|
||||||
|
|
||||||
|
{{ foo.bar.baz }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
|
||||||
|
{{ foo.bar + baz.qux }}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
|
{# ^^^ @variable #}
|
||||||
|
{# ^^^ @variable.member #}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue