diff options
Diffstat (limited to 'runtime/queries/hcl')
| -rw-r--r-- | runtime/queries/hcl/folds.scm | 6 | ||||
| -rw-r--r-- | runtime/queries/hcl/highlights.scm | 118 | ||||
| -rw-r--r-- | runtime/queries/hcl/indents.scm | 16 | ||||
| -rw-r--r-- | runtime/queries/hcl/injections.scm | 7 |
4 files changed, 147 insertions, 0 deletions
diff --git a/runtime/queries/hcl/folds.scm b/runtime/queries/hcl/folds.scm new file mode 100644 index 000000000..e0c5313a2 --- /dev/null +++ b/runtime/queries/hcl/folds.scm @@ -0,0 +1,6 @@ +[ + (comment) + (block) + (heredoc_template) + (object) +] @fold diff --git a/runtime/queries/hcl/highlights.scm b/runtime/queries/hcl/highlights.scm new file mode 100644 index 000000000..4fb7d1fca --- /dev/null +++ b/runtime/queries/hcl/highlights.scm @@ -0,0 +1,118 @@ +; highlights.scm +[ + "!" + "\*" + "/" + "%" + "\+" + "-" + ">" + ">=" + "<" + "<=" + "==" + "!=" + "&&" + "||" +] @operator + +[ + "{" + "}" + "[" + "]" + "(" + ")" +] @punctuation.bracket + +[ + "." + ".*" + "," + "[*]" +] @punctuation.delimiter + +[ + (ellipsis) + "\?" + "=>" +] @punctuation.special + +[ + ":" + "=" +] @none + +[ + "for" + "endfor" + "in" +] @keyword.repeat + +[ + "if" + "else" + "endif" +] @keyword.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) @variable.member) + +; { key: val } +; +; highlight identifier keys as though they were block attributes +(object_elem + key: (expression + (variable_expr + (identifier) @variable.member))) + +; var.foo, data.bar +; +; first element in get_attr is a variable.builtin or a reference to a variable.builtin +(expression + (variable_expr + (identifier) @variable.builtin) + (get_attr + (identifier) @variable.member)) diff --git a/runtime/queries/hcl/indents.scm b/runtime/queries/hcl/indents.scm new file mode 100644 index 000000000..1d7dc49d9 --- /dev/null +++ b/runtime/queries/hcl/indents.scm @@ -0,0 +1,16 @@ +[ + (block) + (object) + (tuple) + (function_call) +] @indent.begin + +[ + "]" + ")" + "}" +] @indent.branch @indent.end + +(comment) @indent.auto + +(ERROR) @indent.auto diff --git a/runtime/queries/hcl/injections.scm b/runtime/queries/hcl/injections.scm new file mode 100644 index 000000000..b68f4caea --- /dev/null +++ b/runtime/queries/hcl/injections.scm @@ -0,0 +1,7 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +(heredoc_template + (template_literal) @injection.content + (heredoc_identifier) @injection.language + (#downcase! @injection.language)) |
