mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-15 09:50:04 -04:00
feat: add puppet
This commit is contained in:
parent
8ec9a50965
commit
fe3afeaa73
8 changed files with 293 additions and 0 deletions
|
|
@ -296,6 +296,7 @@ We are looking for maintainers to add more parsers and to write query files for
|
||||||
- [x] [proto](https://github.com/mitchellh/tree-sitter-proto) (maintained by @fsouza)
|
- [x] [proto](https://github.com/mitchellh/tree-sitter-proto) (maintained by @fsouza)
|
||||||
- [x] [prql](https://github.com/PRQL/tree-sitter-prql) (maintained by @matthias-Q)
|
- [x] [prql](https://github.com/PRQL/tree-sitter-prql) (maintained by @matthias-Q)
|
||||||
- [x] [pug](https://github.com/zealot128/tree-sitter-pug) (experimental, maintained by @zealot128)
|
- [x] [pug](https://github.com/zealot128/tree-sitter-pug) (experimental, maintained by @zealot128)
|
||||||
|
- [x] [puppet](https://github.com/amaanq/tree-sitter-puppet) (maintained by @amaanq)
|
||||||
- [x] [python](https://github.com/tree-sitter/tree-sitter-python) (maintained by @stsewd, @theHamsta)
|
- [x] [python](https://github.com/tree-sitter/tree-sitter-python) (maintained by @stsewd, @theHamsta)
|
||||||
- [x] [ql](https://github.com/tree-sitter/tree-sitter-ql) (maintained by @pwntester)
|
- [x] [ql](https://github.com/tree-sitter/tree-sitter-ql) (maintained by @pwntester)
|
||||||
- [x] [qmldir](https://github.com/Decodetalkers/tree-sitter-qmldir) (maintained by @amaanq)
|
- [x] [qmldir](https://github.com/Decodetalkers/tree-sitter-qmldir) (maintained by @amaanq)
|
||||||
|
|
|
||||||
|
|
@ -368,6 +368,9 @@
|
||||||
"pug": {
|
"pug": {
|
||||||
"revision": "884e225b5ecca5d885ae627275f16ef648acd42e"
|
"revision": "884e225b5ecca5d885ae627275f16ef648acd42e"
|
||||||
},
|
},
|
||||||
|
"puppet": {
|
||||||
|
"revision": "5e1bb979ea71efc0860d4bc56eb3b3f7a670d6ec"
|
||||||
|
},
|
||||||
"python": {
|
"python": {
|
||||||
"revision": "62827156d01c74dc1538266344e788da74536b8a"
|
"revision": "62827156d01c74dc1538266344e788da74536b8a"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1111,6 +1111,14 @@ list.pug = {
|
||||||
experimental = true,
|
experimental = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.puppet = {
|
||||||
|
install_info = {
|
||||||
|
url = "https://github.com/amaanq/tree-sitter-puppet",
|
||||||
|
files = { "src/parser.c" },
|
||||||
|
},
|
||||||
|
maintainers = { "@amaanq" },
|
||||||
|
}
|
||||||
|
|
||||||
list.python = {
|
list.python = {
|
||||||
install_info = {
|
install_info = {
|
||||||
url = "https://github.com/tree-sitter/tree-sitter-python",
|
url = "https://github.com/tree-sitter/tree-sitter-python",
|
||||||
|
|
|
||||||
13
queries/puppet/folds.scm
Normal file
13
queries/puppet/folds.scm
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
[
|
||||||
|
(block)
|
||||||
|
(defined_resource_type)
|
||||||
|
(parameter_list)
|
||||||
|
(attribute_type_entry)
|
||||||
|
(resource_declaration)
|
||||||
|
(selector)
|
||||||
|
(method_call)
|
||||||
|
(case_statement)
|
||||||
|
(hash)
|
||||||
|
(array)
|
||||||
|
(comment)
|
||||||
|
] @fold
|
||||||
194
queries/puppet/highlights.scm
Normal file
194
queries/puppet/highlights.scm
Normal file
|
|
@ -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
|
||||||
24
queries/puppet/indents.scm
Normal file
24
queries/puppet/indents.scm
Normal file
|
|
@ -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
|
||||||
4
queries/puppet/injections.scm
Normal file
4
queries/puppet/injections.scm
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
((regex) @regex
|
||||||
|
(#offset! @regex 0 1 0 -1))
|
||||||
|
|
||||||
|
(comment) @comment
|
||||||
46
queries/puppet/locals.scm
Normal file
46
queries/puppet/locals.scm
Normal file
|
|
@ -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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue