1
Files
flake-nixinator/config/neovim/store/nvim-treesitter/queries/puppet/highlights.scm

239 lines
2.8 KiB
Scheme

; 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