Skip to content

Commit

Permalink
slint: Port over suggestions from nvim review
Browse files Browse the repository at this point in the history
  • Loading branch information
hunger committed Feb 7, 2024
1 parent b65694f commit f505df2
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 72 deletions.
2 changes: 1 addition & 1 deletion languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2139,7 +2139,7 @@ language-servers = [ "slint-lsp" ]

[[grammar]]
name = "slint"
source = { git = "https://github.com/slint-ui/tree-sitter-slint", rev = "fcdc1d5a302fa2792d941d77ce5525ff4f3b4fca" }
source = { git = "https://github.com/slint-ui/tree-sitter-slint", rev = "15618215b79b9db08f824a5c97a12d073dcc1c00" }

[[language]]
name = "task"
Expand Down
172 changes: 101 additions & 71 deletions runtime/queries/slint/highlights.scm
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

; Different types:
(string_value) @string
(bool_value) @constant.builtin.boolean

; Constants

(escape_sequence) @constant.character.escape

Expand All @@ -12,30 +15,26 @@
(easing_kind_identifier)
] @constant.builtin

(bool_value) @constant.builtin.boolean

(int_value) @constant.numeric.integer
[
(int_value)
(physical_length_value)
] @constant.numeric.integer

[
(float_value)
(percent_value)
(length_value)
(physical_length_value)
(duration_value)
(angle_value)
(relative_font_size_value)
] @constant.numeric.float

(simple_identifier) @variable.other

(purity) @keyword.storage.modifier

(function_visibility) @keyword.storage.modifier

(property_visibility) @keyword.storage.modifier

(animate_option_identifier) @keyword

(builtin_type_identifier) @type.builtin

(reference_identifier) @variable.builtin
Expand All @@ -49,71 +48,56 @@

(user_type_identifier) @type

[
(comparison_operator)
(mult_prec_operator)
(add_prec_operator)
(unary_prec_operator)
(assignment_prec_operator)
] @operator

; Functions and callbacks
(argument) @variable.parameter

(function_call) @function
(function_call
name: (_) @function.call)

; definitions
(callback
name: (_) @function)

(component
id: (_) @variable)
(callback_alias
name: (_) @function)

(callback_event
name: (simple_identifier) @function.call)

(enum_definition
name: (_) @type.enum)

(function_definition
name: (_) @function)

(property
name: (_) @variable.other.member)

(struct_definition
name: (_) @type)

(typed_identifier
name: (_) @variable)

(typed_identifier
type: (_) @type)

; Operators
(binary_expression
op: (_) @operator)

":=" @operator

(unary_expression
op: (_) @operator)

(if_statement
"if" @keyword.conditional)

(if_statement
":" @punctuation.delimiter)

(if_expr
[
"if"
"else"
] @keyword.conditional)
[
(comparison_operator)
(mult_prec_operator)
(add_prec_operator)
(unary_prec_operator)
(assignment_prec_operator)
] @operator

(ternary_expression
[
"?"
":"
] @keyword.conditional)
[
":="
"=>"
"->"
"<=>"
] @operator

; Keywords:
[
";"
"."
Expand All @@ -129,23 +113,85 @@
"}"
] @punctuation.bracket

(property
[
"<"
">"
] @punctuation.bracket)

; 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
[
(linear_gradient_identifier)
(radial_gradient_identifier)
(radial_gradient_kind)
] @attribute

(export) @keyword.import
(image_call
"@image-url" @attribute)

(tr
"@tr" @attribute)

; Keywords
(animate_option_identifier) @keyword

(export) @keyword.control.import

(animate_option
":" @punctuation.delimiter)
(if_statement
"if" @keyword.control.conditional)

(if_expr
[
"if"
"else"
] @keyword.control.conditional)

(ternary_expression
[
"?"
":"
] @keyword.control.conditional)

(animate_statement
"animate" @keyword)

(assignment_expr
name: (_) @variable.other.member)

(callback
"callback" @keyword.function)

Expand All @@ -162,41 +208,28 @@
[
"for"
"in"
] @keyword.repeat)

(for_loop
":" @punctuation.delimiter)
] @keyword.control.repeat)

(function_definition
"function" @keyword.function)

(function_call
name: (_) @function.call)

(global_definition
"global" @keyword.storage.type)

(image_call
"@image-url" @attribute)

(imperative_block
"return" @keyword.return)
"return" @keyword.control.return)

(import_statement
[
"import"
"from"
] @keyword.import)
] @keyword.control.import)

(import_type
"as" @keyword.import)
"as" @keyword.control.import)

(property
[
"property"
"<"
">"
] @keyword.storage.type)
"property" @keyword.storage.type)

(states_definition
[
Expand All @@ -207,9 +240,6 @@
(struct_definition
"struct" @keyword.storage.type)

(tr
"@tr" @attribute)

(transitions_definition
[
"transitions"
Expand Down

0 comments on commit f505df2

Please sign in to comment.