nvim-treesitter/queries/hcl/highlights.scm
Michael Hoffmann ee3e9f4dc0 feat(hcl,terraform): split terraform from hcl, add specialized queries for tf
This enables us to have different queries for
terraform and general hcl. It solve the situation
where other dialects of hcl (nomad, packer, etc)
might use a terraform keyword and get highlighted
out of place.
2022-12-29 22:18:41 +01:00

99 lines
1.4 KiB
Scheme

; highlights.scm
[
"!"
"\*"
"/"
"%"
"\+"
"-"
">"
">="
"<"
"<="
"=="
"!="
"&&"
"||"
] @operator
[
"{"
"}"
"["
"]"
"("
")"
] @punctuation.bracket
[
"."
".*"
","
"[*]"
] @punctuation.delimiter
[
(ellipsis)
"\?"
"=>"
] @punctuation.special
[
":"
"="
] @none
[
"for"
"endfor"
"in"
] @repeat
[
"if"
"else"
"endif"
] @conditional
[
(quoted_template_start) ; "
(quoted_template_end); "
(template_literal) ; non-interpolation/directive content
] @string
[
(heredoc_identifier) ; END
(heredoc_start) ; << or <<-
] @punctuation.delimiter
[
(template_interpolation_start) ; ${
(template_interpolation_end) ; }
(template_directive_start) ; %{
(template_directive_end) ; }
(strip_marker) ; ~
] @punctuation.special
(numeric_lit) @number
(bool_lit) @boolean
(null_lit) @constant
(comment) @comment @spell
(identifier) @variable
(body (block (identifier) @keyword))
(body (block (body (block (identifier) @type))))
(function_call (identifier) @function)
(attribute (identifier) @field)
; { key: val }
;
; highlight identifier keys as though they were block attributes
(object_elem key: (expression (variable_expr (identifier) @field)))
; var.foo, data.bar
;
; first element in get_attr is a keyword or a reference to a keyword
(expression (variable_expr (identifier) @keyword) (get_attr (identifier) @field))
(ERROR) @error