diff options
Diffstat (limited to 'runtime/queries/puppet')
| -rw-r--r-- | runtime/queries/puppet/folds.scm | 13 | ||||
| -rw-r--r-- | runtime/queries/puppet/highlights.scm | 238 | ||||
| -rw-r--r-- | runtime/queries/puppet/indents.scm | 23 | ||||
| -rw-r--r-- | runtime/queries/puppet/injections.scm | 6 | ||||
| -rw-r--r-- | runtime/queries/puppet/locals.scm | 64 |
5 files changed, 344 insertions, 0 deletions
diff --git a/runtime/queries/puppet/folds.scm b/runtime/queries/puppet/folds.scm new file mode 100644 index 000000000..78800fe4c --- /dev/null +++ b/runtime/queries/puppet/folds.scm @@ -0,0 +1,13 @@ +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (resource_declaration) + (selector) + (iterator_statement) + (case_statement) + (hash) + (array) + (comment) +] @fold diff --git a/runtime/queries/puppet/highlights.scm b/runtime/queries/puppet/highlights.scm new file mode 100644 index 000000000..10621930f --- /dev/null +++ b/runtime/queries/puppet/highlights.scm @@ -0,0 +1,238 @@ +; Variables +(identifier) @variable + +; Includes +"include" @keyword.import + +(include_statement + (identifier) @type) + +(include_statement + (class_identifier + (identifier) @type .)) + +; Keywords +[ + "inherits" + "node" + "tag" + "require" +] @keyword + +[ + "type" + "class" +] @keyword.type + +[ + "define" + "function" +] @keyword.function + +[ + "if" + "elsif" + "else" + "unless" + "case" +] @keyword.conditional + +(default_case + "default" @keyword.conditional) + +; Attributes +(attribute + name: (identifier) @attribute) + +(attribute + name: (variable + (identifier) @attribute)) + +; Parameters +(lambda + (variable + (identifier) @variable.parameter)) + +(parameter + (variable + (identifier) @variable.parameter)) + +(function_call + (identifier) @variable.parameter) + +(iterator_statement + (variable) @variable.parameter) + +; Functions +(function_declaration + "function" + . + (identifier) @function) + +(function_call + (identifier) @function.call + "(") + +(defined_resource_type + "define" + . + (identifier) @function) + +; Methods +(function_declaration + "function" + . + (class_identifier + (identifier) @function.method .)) + +(function_call + (class_identifier + (identifier) @function.method.call .)) + +(defined_resource_type + "define" + . + (class_identifier + (identifier) @function.method .)) + +(function_call + (field_expression + "." + (identifier) @function.method.call) + "(") + +; Types +(type) @type + +(builtin_type) @type.builtin + +(class_definition + (identifier) @type) + +(class_definition + (class_identifier + (identifier) @type .)) + +(class_inherits + (identifier) @type) + +(class_inherits + (class_identifier + (identifier) @type .)) + +(resource_declaration + (identifier) @type) + +(resource_declaration + (class_identifier + (identifier) @type .)) + +(node_definition + (node_name + (identifier) @type)) + +((identifier) @type + (#lua-match? @type "^[A-Z]")) + +((identifier) @type.builtin + (#any-of? @type.builtin + "Boolean" "Integer" "Float" "String" "Array" "Hash" "Regexp" "Variant" "Data" "Undef" "Default" + "File")) + +; "Namespaces" +(class_identifier + . + (identifier) @module) + +; Operators +[ + "or" + "and" + "in" +] @keyword.operator + +[ + "=" + "+=" + "->" + "~>" + "<<|" + "<|" + "|>" + "|>>" + "?" + ">" + ">=" + "<=" + "<" + "==" + "!=" + "<<" + ">>" + "+" + "-" + "*" + "/" + "%" + "=~" + "!~" +] @operator + +; Punctuation +[ + "|" + "." + "," + ";" + ":" + "::" + "=>" +] @punctuation.delimiter + +[ + "{" + "}" +] @punctuation.bracket + +[ + "[" + "]" +] @punctuation.bracket + +[ + "(" + ")" +] @punctuation.bracket + +(interpolation + [ + "${" + "}" + ] @punctuation.special) + +[ + "$" + "@" + "@@" +] @punctuation.special + +; Literals +(number) @number + +(float) @number.float + +(string) @string + +(escape_sequence) @string.escape + +(regex) @string.regexp + +(boolean) @boolean + +[ + (undef) + (default) +] @variable.builtin + +; Comments +(comment) @comment @spell diff --git a/runtime/queries/puppet/indents.scm b/runtime/queries/puppet/indents.scm new file mode 100644 index 000000000..71c882f33 --- /dev/null +++ b/runtime/queries/puppet/indents.scm @@ -0,0 +1,23 @@ +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (resource_declaration) + (selector) + (case_statement) + (hash) + (array) +] @indent.begin + +[ + "}" + "]" + ")" +] @indent.branch @indent.end + +[ + (string) + (comment) + (ERROR) +] @indent.auto diff --git a/runtime/queries/puppet/injections.scm b/runtime/queries/puppet/injections.scm new file mode 100644 index 000000000..caa10a2b0 --- /dev/null +++ b/runtime/queries/puppet/injections.scm @@ -0,0 +1,6 @@ +((regex) @injection.content + (#set! injection.language "regex") + (#offset! @injection.content 0 1 0 -1)) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/runtime/queries/puppet/locals.scm b/runtime/queries/puppet/locals.scm new file mode 100644 index 000000000..f145fffbc --- /dev/null +++ b/runtime/queries/puppet/locals.scm @@ -0,0 +1,64 @@ +; Scopes +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (class_definition) + (node_definition) + (resource_declaration) + (selector) + (iterator_statement) + (case_statement) + (hash) + (array) +] @local.scope + +; References +[ + (identifier) + (class_identifier) + (variable) +] @local.reference + +; Definitions +(attribute + [ + (identifier) + (variable) + ] @local.definition.field) + +(function_declaration + [ + (identifier) + (class_identifier) + ] @local.definition.function) + +(include_statement + [ + (identifier) + (class_identifier) + ] @local.definition.import) + +(parameter + (variable) @local.definition.parameter) + +(class_definition + [ + (identifier) + (class_identifier) + ] @local.definition.type) + +(node_definition + (node_name + (identifier) @local.definition.type)) + +(resource_declaration + [ + (identifier) + (class_identifier) + ] @local.definition.type) + +(assignment + . + (variable) @local.definition.var) |
