diff options
| author | Amaan Qureshi <amaanq12@gmail.com> | 2023-04-26 07:32:41 -0400 |
|---|---|---|
| committer | Amaan Qureshi <amaanq12@gmail.com> | 2023-04-26 19:29:01 -0400 |
| commit | fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051 (patch) | |
| tree | a22f62ecae8e5a224c0ec98fad7df601782279b7 /queries/puppet | |
| parent | fix: add `-f` to `mv` to avoid errors when updating (diff) | |
| download | nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar.gz nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar.bz2 nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar.lz nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar.xz nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.tar.zst nvim-treesitter-fe3afeaa73cbf4b65a2cc603a6ba04c965dbe051.zip | |
feat: add puppet
Diffstat (limited to 'queries/puppet')
| -rw-r--r-- | queries/puppet/folds.scm | 13 | ||||
| -rw-r--r-- | queries/puppet/highlights.scm | 194 | ||||
| -rw-r--r-- | queries/puppet/indents.scm | 24 | ||||
| -rw-r--r-- | queries/puppet/injections.scm | 4 | ||||
| -rw-r--r-- | queries/puppet/locals.scm | 46 |
5 files changed, 281 insertions, 0 deletions
diff --git a/queries/puppet/folds.scm b/queries/puppet/folds.scm new file mode 100644 index 000000000..c8fad6f92 --- /dev/null +++ b/queries/puppet/folds.scm @@ -0,0 +1,13 @@ +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (resource_declaration) + (selector) + (method_call) + (case_statement) + (hash) + (array) + (comment) +] @fold diff --git a/queries/puppet/highlights.scm b/queries/puppet/highlights.scm new file mode 100644 index 000000000..889aabc65 --- /dev/null +++ b/queries/puppet/highlights.scm @@ -0,0 +1,194 @@ +; Variables + +(identifier) @variable + +; Includes + +"include" @include + +(include_statement (identifier) @type) + +(include_statement (class_identifier (identifier) @type . )) + +; Keywords + +[ + "class" + "inherits" + "node" + "type" + "tag" +] @keyword + +[ + "define" + "function" +] @keyword.function + +[ + "if" + "elsif" + "else" + "case" +] @conditional + +(default_case "default" @conditional) + +; Properties + +(attribute name: (identifier) @property) +(attribute name: (variable (identifier) @property)) + +; Parameters + +(lambda (variable (identifier) @parameter)) + +(parameter (variable (identifier) @parameter)) + +(function_call (identifier) @parameter) + +(method_call (identifier) @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) @method . )) + +(function_call + (class_identifier (identifier) @method.call . )) + +(defined_resource_type + "define" . (class_identifier (identifier) @method . )) + +(method_call + "." . (identifier) @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) @namespace) + +; 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) @float + +(string) @string + +(escape_sequence) @string.escape + +(regex) @string.regex + +(boolean) @boolean + +[ + (undef) + (default) +] @variable.builtin + +; Comments + +(comment) @comment @spell + +; Errors + +(ERROR) @error diff --git a/queries/puppet/indents.scm b/queries/puppet/indents.scm new file mode 100644 index 000000000..3522fe2f4 --- /dev/null +++ b/queries/puppet/indents.scm @@ -0,0 +1,24 @@ +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (resource_declaration) + (selector) + (method_call) + (case_statement) + (hash) + (array) +] @indent.begin + +[ + "}" + "]" + ")" +] @indent.branch @indent.end + +[ + (string) + (comment) + (ERROR) +] @indent.auto diff --git a/queries/puppet/injections.scm b/queries/puppet/injections.scm new file mode 100644 index 000000000..a81069600 --- /dev/null +++ b/queries/puppet/injections.scm @@ -0,0 +1,4 @@ +((regex) @regex + (#offset! @regex 0 1 0 -1)) + +(comment) @comment diff --git a/queries/puppet/locals.scm b/queries/puppet/locals.scm new file mode 100644 index 000000000..d9d903a46 --- /dev/null +++ b/queries/puppet/locals.scm @@ -0,0 +1,46 @@ +; Scopes + +[ + (block) + (defined_resource_type) + (parameter_list) + (attribute_type_entry) + (class_definition) + (node_definition) + (resource_declaration) + (selector) + (method_call) + (case_statement) + (hash) + (array) +] @scope + +; References + +[ + (identifier) + (class_identifier) + (variable) +] @reference + +; Definitions + +(attribute [(identifier) (variable)] @definition.field) + +(function_declaration + [(identifier) (class_identifier)] @definition.function) + +(include_statement [(identifier) (class_identifier)] @definition.import) + +(parameter (variable) @definition.parameter) + +(class_definition + [(identifier) (class_identifier)] @definition.type) + +(node_definition + (node_name (identifier) @definition.type)) + +(resource_declaration + [(identifier) (class_identifier)] @definition.type) + +(assignment . (variable) @definition.var) |
