aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorErasin Wang2023-08-13 07:18:57 +0000
committerGitHub2023-08-13 07:18:57 +0000
commit19dff5c3a4c1f41436cc11372e5e7dcbfe197112 (patch)
tree94f1a2fa6bcec16c222b4215492c3472bae58dac /runtime
parentb0c270f8e6f11cf6501b21c2ce785822a6f76c7b (diff)
Update slint grammar (#7893)
Diffstat (limited to 'runtime')
-rw-r--r--runtime/queries/slint/highlights.scm190
-rw-r--r--runtime/queries/slint/indents.scm11
-rw-r--r--runtime/queries/slint/injections.scm2
-rw-r--r--runtime/queries/slint/locals.scm2
4 files changed, 127 insertions, 78 deletions
diff --git a/runtime/queries/slint/highlights.scm b/runtime/queries/slint/highlights.scm
index c7773913..c0ef3dd8 100644
--- a/runtime/queries/slint/highlights.scm
+++ b/runtime/queries/slint/highlights.scm
@@ -1,105 +1,153 @@
-(user_type_identifier) @type
+(identifier) @variable
+[
+ (type_identifier)
+ (units)
+]@type
-(var_identifier) @variable
+(array_literal
+ (identifier) @type)
-(state_identifier) @variable.other.member
+(function_identifier) @function
+[
+ (image_macro)
+ (children_macro)
+ (radial_grad_macro)
+ (linear_grad_macro)
+] @function.macro
-(var_identifier
- (post_identifier) @variable)
+(call_expression
+ function: (identifier) @function)
+(call_expression
+ function: (field_expression
+ field: (identifier) @function))
-(function_identifier) @function
+(vis) @keyword.control.import
-(reference_identifier) @keyword.storage.modifier.ref
-(visibility_modifier) @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)
(comment) @comment
-(string) @string
-(int_number) @constant.numeric
-(unit_type) @type.builtin
+(string_literal) @string
+(int_literal) @constant.numeric.integer
+(float_literal) @constant.numeric.float
+
+[
+ "in"
+ "in-out"
+ "for"
+] @keyword.control.repeat
+
+[
+ "import"
+ "export"
+ "from"
+] @keyword.control.import
+
+[
+ "if"
+ "else"
+ "when"
+] @keyword.control.conditional
+
+[
+ "struct"
+ "property"
+] @keyword.storage.type
+
+[
+ "global"
+] @keyword.storage.modifier
+
[
-"struct"
-"property"
-"callback"
-"import"
-"from"
-"root"
-"parent"
-"this"
-"for"
-"in"
-"if"
-"else if"
-"else"
-"animate"
-"states"
-"when"
-"in"
-"out"
-"transitions"
-"global"
+ "root"
+ "parent"
+ "duration"
+ "easing"
+] @variable.builtin
+
+
+[
+ "callback"
+ "animate"
+ "states"
+ "out"
+ "transitions"
+ "component"
+ "inherits"
] @keyword
[
- "black"
- "transparent"
- "blue"
- "ease"
- "ease_in"
- "ease-in"
- "ease_in_out"
- "ease-in-out"
- "ease_out"
- "ease-out"
- "end"
- "green"
- "red"
- "red"
- "start"
- "yellow"
- "true"
- "false"
+ "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
+[
+ "true"
+ "false"
+] @constant.builtin.boolean
+
"@" @keyword
; ; Punctuation
[
","
"."
+ ";"
+ ":"
] @punctuation.delimiter
; ; Brackets
[
-"("
-")"
-"["
-"]"
-"{"
-"}"
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
] @punctuation.bracket
+(define_property ["<" ">"] @punctuation.bracket)
+
[
-"angle"
-"bool"
-"brush"
-; "color" // This causes problems
-"duration"
-"easing"
-"float"
-"image"
-"int"
-"length"
-"percent"
-"physical-length"
-"physical_length"
-"string"
+ "angle"
+ "bool"
+ "brush"
+ "color"
+ "duration"
+ "easing"
+ "float"
+ "image"
+ "int"
+ "length"
+ "percent"
+ "physical-length"
+ "physical_length"
+ "string"
] @type.builtin
[
":="
+ "<=>"
"!"
"-"
"+"
@@ -118,8 +166,6 @@
"*="
"/="
"?"
-
- "=>"
- ] @operator
+ "=>" ] @operator
(ternary_expression [":" "?"] @keyword.control.conditional) \ No newline at end of file
diff --git a/runtime/queries/slint/indents.scm b/runtime/queries/slint/indents.scm
index 37bbd536..4b5ce41b 100644
--- a/runtime/queries/slint/indents.scm
+++ b/runtime/queries/slint/indents.scm
@@ -1,11 +1,12 @@
[
- (field_declaration_list_body)
- (list_definition_body)
- (struct_field_declaration_list_body)
+ (comp_body)
+ (state_statement)
+ (transition_statement)
+ (handler_body)
+ (consequence_body)
+ (global_single)
] @indent
[
"}"
- "]"
- ")"
] @outdent
diff --git a/runtime/queries/slint/injections.scm b/runtime/queries/slint/injections.scm
new file mode 100644
index 00000000..321c90ad
--- /dev/null
+++ b/runtime/queries/slint/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/runtime/queries/slint/locals.scm b/runtime/queries/slint/locals.scm
index feba5ebb..a115f0c6 100644
--- a/runtime/queries/slint/locals.scm
+++ b/runtime/queries/slint/locals.scm
@@ -1,3 +1,3 @@
; locals.scm
-(component_definition) @local.scope
+(component_item) @local.scope