mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-04 11:40:04 +08:00
195 lines
2.6 KiB
Scheme
195 lines
2.6 KiB
Scheme
|
; 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
|