Skip to content

Commit

Permalink
Update slint grammar (helix-editor#7893)
Browse files Browse the repository at this point in the history
  • Loading branch information
erasin authored and Schuyler Mortimer committed Jul 10, 2024
1 parent f2e87db commit a60a8ad
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 79 deletions.
2 changes: 1 addition & 1 deletion languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2029,7 +2029,7 @@ language-servers = [ "slint-lsp" ]

[[grammar]]
name = "slint"
source = { git = "https://github.com/jrmoulton/tree-sitter-slint", rev = "0d4dda94f96623302dfc234e06be62a5717f47da" }
source = { git = "https://github.com/jrmoulton/tree-sitter-slint", rev = "00c8a2d3645766f68c0d0460086c0a994e5b0d85" }

[[language]]
name = "task"
Expand Down
190 changes: 118 additions & 72 deletions runtime/queries/slint/highlights.scm
Original file line number Diff line number Diff line change
@@ -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

[
":="
"<=>"
"!"
"-"
"+"
Expand All @@ -118,8 +166,6 @@
"*="
"/="
"?"

"=>"
] @operator
"=>" ] @operator

(ternary_expression [":" "?"] @keyword.control.conditional)
11 changes: 6 additions & 5 deletions runtime/queries/slint/indents.scm
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions runtime/queries/slint/injections.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))
2 changes: 1 addition & 1 deletion runtime/queries/slint/locals.scm
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
; locals.scm

(component_definition) @local.scope
(component_item) @local.scope

0 comments on commit a60a8ad

Please sign in to comment.