@@ -0,0 +1,100 @@
5+(object_elem val: (expression
7+ (identifier) @type.builtin (#match? @type.builtin "^(bool|string|number|object|tuple|list|map|set|any)$"))))
9+(get_attr (identifier) @variable.builtin (#match? @variable.builtin "^(root|cwd|module)$"))
10+(variable_expr (identifier) @variable.builtin (#match? @variable.builtin "^(var|local|path)$"))
11+((identifier) @type.builtin (#match? @type.builtin "^(bool|string|number|object|tuple|list|map|set|any)$"))
12+((identifier) @keyword (#match? @keyword "^(module|root|cwd|resource|variable|data|locals|terraform|provider|output)$"))
14+; highlight identifier keys as though they were block attributes
15+(object_elem key: (expression (variable_expr (identifier) @variable.other.member)))
17+(attribute (identifier) @variable.other.member)
18+(function_call (identifier) @function.method)
19+(block (identifier) @type.builtin)
21+(identifier) @variable
23+(null_lit) @constant.builtin
24+(numeric_lit) @constant.number
25+(bool_lit) @constant.builtin.boolean
28+ (template_interpolation_start) ; ${
29+ (template_interpolation_end) ; }
30+ (template_directive_start) ; %{
31+ (template_directive_end) ; }
33+] @punctuation.special
36+ (heredoc_identifier) ; <<END
37+ (heredoc_start) ; END
38+] @punctuation.delimiter
41+ (quoted_template_start) ; "
42+ (quoted_template_end); "
43+ (template_literal) ; non-interpolation/directive content
50+] @keyword.control.conditional
56+] @keyword.control.repeat
67+] @punctuation.special
74+] @punctuation.delimiter
83+] @punctuation.bracket