mirror of
https://github.com/chenasraf/nvim-treesitter.git
synced 2026-05-17 17:38:02 +00: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:
committed by
Christian Clason
parent
1e3b7562c2
commit
20d77c2e5b
@@ -71,11 +71,7 @@
|
||||
"as"
|
||||
] @keyword.import
|
||||
|
||||
(import_statement
|
||||
(identifier) @variable)
|
||||
|
||||
(import_as
|
||||
(identifier) @variable)
|
||||
(identifier) @variable
|
||||
|
||||
[
|
||||
"if"
|
||||
@@ -109,12 +105,34 @@
|
||||
|
||||
(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
|
||||
"."
|
||||
(identifier)+ @variable.member)
|
||||
|
||||
; jinja filters
|
||||
(binary_expression
|
||||
(binary_operator
|
||||
"|")
|
||||
(unary_expression
|
||||
(primary_expression
|
||||
(identifier) @function.call)))
|
||||
|
||||
(inline_trans
|
||||
"_" @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 #}
|
||||
Reference in New Issue
Block a user