aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/slint/highlights.scm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/slint/highlights.scm')
-rw-r--r--runtime/queries/slint/highlights.scm339
1 files changed, 208 insertions, 131 deletions
diff --git a/runtime/queries/slint/highlights.scm b/runtime/queries/slint/highlights.scm
index c0ef3dd8..06d82a41 100644
--- a/runtime/queries/slint/highlights.scm
+++ b/runtime/queries/slint/highlights.scm
@@ -1,122 +1,109 @@
+(comment) @comment
+
+; Different types:
+(string_value) @string
+(bool_value) @constant.builtin.boolean
+
+; Constants
+
+(escape_sequence) @constant.character.escape
+
+(color_value) @constant
-(identifier) @variable
[
- (type_identifier)
- (units)
-]@type
+ (children_identifier)
+ (easing_kind_identifier)
+] @constant.builtin
-(array_literal
- (identifier) @type)
+[
+ (int_value)
+ (physical_length_value)
+] @constant.numeric.integer
-(function_identifier) @function
[
- (image_macro)
- (children_macro)
- (radial_grad_macro)
- (linear_grad_macro)
-] @function.macro
+ (float_value)
+ (percent_value)
+ (length_value)
+ (duration_value)
+ (angle_value)
+ (relative_font_size_value)
+] @constant.numeric.float
-(call_expression
- function: (identifier) @function)
-(call_expression
- function: (field_expression
- field: (identifier) @function))
+(purity) @keyword.storage.modifier
-(vis) @keyword.control.import
+(function_visibility) @keyword.storage.modifier
-(transition_statement state: (identifier) @variable.other.member)
-(state_expression state: (identifier) @variable.other.member)
-(struct_block_definition field: (identifier) @variable.other.member)
-(assign_property (identifier) @attribute)
+(property_visibility) @keyword.storage.modifier
-(comment) @comment
+(builtin_type_identifier) @type.builtin
-(string_literal) @string
-(int_literal) @constant.numeric.integer
-(float_literal) @constant.numeric.float
+(reference_identifier) @variable.builtin
-[
- "in"
- "in-out"
- "for"
-] @keyword.control.repeat
+(type
+ [
+ (type_list)
+ (user_type_identifier)
+ (anon_struct_block)
+ ]) @type
-[
- "import"
- "export"
- "from"
-] @keyword.control.import
+(user_type_identifier) @type
-[
- "if"
- "else"
- "when"
-] @keyword.control.conditional
+; Functions and callbacks
+(argument) @variable.parameter
-[
- "struct"
- "property"
-] @keyword.storage.type
+(function_call
+ name: (_) @function.call)
-[
- "global"
-] @keyword.storage.modifier
+; definitions
+(callback
+ name: (_) @function)
+(callback_alias
+ name: (_) @function)
-[
- "root"
- "parent"
- "duration"
- "easing"
-] @variable.builtin
+(callback_event
+ name: (simple_identifier) @function.call)
+(enum_definition
+ name: (_) @type.enum)
-[
- "callback"
- "animate"
- "states"
- "out"
- "transitions"
- "component"
- "inherits"
-] @keyword
+(function_definition
+ name: (_) @function)
-[
- "black"
- "transparent"
- "blue"
- "ease"
- "ease_in"
- "ease-in"
- "ease_in_out"
- "ease-in-out"
- "ease_out"
- "ease-out"
- "end"
- "green"
- "red"
- "start"
- "yellow"
- "white"
- "gray"
- ] @constant.builtin
+(struct_definition
+ name: (_) @type)
+
+(typed_identifier
+ type: (_) @type)
+
+; Operators
+(binary_expression
+ op: (_) @operator)
+
+(unary_expression
+ op: (_) @operator)
[
- "true"
- "false"
-] @constant.builtin.boolean
+ (comparison_operator)
+ (mult_prec_operator)
+ (add_prec_operator)
+ (unary_prec_operator)
+ (assignment_prec_operator)
+] @operator
-"@" @keyword
+[
+ ":="
+ "=>"
+ "->"
+ "<=>"
+] @operator
-; ; Punctuation
[
- ","
- "."
";"
- ":"
+ "."
+ ","
] @punctuation.delimiter
-; ; Brackets
[
"("
")"
@@ -126,46 +113,136 @@
"}"
] @punctuation.bracket
-(define_property ["<" ">"] @punctuation.bracket)
+(property
+ [
+ "<"
+ ">"
+ ] @punctuation.bracket)
-[
- "angle"
- "bool"
- "brush"
- "color"
- "duration"
- "easing"
- "float"
- "image"
- "int"
- "length"
- "percent"
- "physical-length"
- "physical_length"
- "string"
-] @type.builtin
+; Properties, constants and variables
+(component
+ id: (simple_identifier) @constant)
+
+(property
+ name: (simple_identifier) @variable)
+
+(binding_alias
+ name: (simple_identifier) @variable)
+
+(binding
+ name: (simple_identifier) @variable)
+
+(struct_block
+ (simple_identifier) @variable.other.member)
+
+(anon_struct_block
+ (simple_identifier) @variable.other.member)
+
+(property_assignment
+ property: (simple_identifier) @variable)
+
+(states_definition
+ name: (simple_identifier) @variable)
+
+(callback
+ name: (simple_identifier) @variable)
+
+(typed_identifier
+ name: (_) @variable)
+
+(simple_indexed_identifier
+ (simple_identifier) @variable)
+
+(expression
+ (simple_identifier) @variable)
+; Attributes
[
- ":="
- "<=>"
- "!"
- "-"
- "+"
- "*"
- "/"
- "&&"
- "||"
- ">"
- "<"
- ">="
- "<="
- "="
- ":"
- "+="
- "-="
- "*="
- "/="
- "?"
- "=>" ] @operator
-
-(ternary_expression [":" "?"] @keyword.control.conditional) \ No newline at end of file
+ (linear_gradient_identifier)
+ (radial_gradient_identifier)
+ (radial_gradient_kind)
+] @attribute
+
+(image_call
+ "@image-url" @attribute)
+
+(tr
+ "@tr" @attribute)
+
+; Keywords
+(animate_option_identifier) @keyword
+
+(export) @keyword.control.import
+
+(if_statement
+ "if" @keyword.control.conditional)
+
+(if_expr
+ [
+ "if"
+ "else"
+ ] @keyword.control.conditional)
+
+(ternary_expression
+ [
+ "?"
+ ":"
+ ] @keyword.control.conditional)
+
+(animate_statement
+ "animate" @keyword)
+
+(callback
+ "callback" @keyword.function)
+
+(component_definition
+ [
+ "component"
+ "inherits"
+ ] @keyword.storage.type)
+
+(enum_definition
+ "enum" @keyword.storage.type)
+
+(for_loop
+ [
+ "for"
+ "in"
+ ] @keyword.control.repeat)
+
+(function_definition
+ "function" @keyword.function)
+
+(global_definition
+ "global" @keyword.storage.type)
+
+(imperative_block
+ "return" @keyword.control.return)
+
+(import_statement
+ [
+ "import"
+ "from"
+ ] @keyword.control.import)
+
+(import_type
+ "as" @keyword.control.import)
+
+(property
+ "property" @keyword.storage.type)
+
+(states_definition
+ [
+ "states"
+ "when"
+ ] @keyword)
+
+(struct_definition
+ "struct" @keyword.storage.type)
+
+(transitions_definition
+ [
+ "transitions"
+ "in"
+ "out"
+ ] @keyword)