mirror of
https://github.com/helix-editor/helix
synced 2026-03-07 20:46:21 +01:00
196 lines
7.6 KiB
Scheme
196 lines
7.6 KiB
Scheme
; Comments
|
|
(comment) @comment
|
|
|
|
; Literals
|
|
(number) @constant.numeric
|
|
(string) @string
|
|
(latex) @string.special
|
|
(boolean) @constant.builtin.boolean
|
|
|
|
; Identifiers
|
|
((identifier) @keyword
|
|
(#match? @keyword "^(encourage|ensure|constraint|layer|Layer|in|In|canvas|global|colors)$"))
|
|
((identifier) @function
|
|
(#match? @function "^norm$"))
|
|
((identifier) @variable
|
|
(#not-match? @variable "^(encourage|ensure|constraint|layer|Layer|in|In|norm|canvas|global|colors)$"))
|
|
(escaped_identifier) @variable.special
|
|
|
|
; Domain keywords
|
|
(type_decl "type" @keyword)
|
|
(subtype_decl "type" @keyword)
|
|
(subtype_decl "<:" @operator)
|
|
(constructor_decl "constructor" @keyword)
|
|
(function_decl "function" @keyword)
|
|
(predicate_decl "predicate" @keyword)
|
|
(notation_stmt "notation" @keyword)
|
|
(value_decl "value" @keyword)
|
|
|
|
(type_decl names: (identifier_list (identifier) @type))
|
|
(type_decl names: (identifier_list (escaped_identifier) @type))
|
|
(subtype_decl subtype: (identifier) @type)
|
|
(subtype_decl subtype: (escaped_identifier) @type)
|
|
(subtype_decl supertype: (identifier) @type)
|
|
(subtype_decl supertype: (escaped_identifier) @type)
|
|
(constructor_decl name: (identifier) @function)
|
|
(constructor_decl name: (escaped_identifier) @function)
|
|
(constructor_decl parameters: (parameter_list (parameter type: (identifier) @type)))
|
|
(constructor_decl parameters: (parameter_list (parameter type: (escaped_identifier) @type)))
|
|
(constructor_decl result_type: (identifier) @type)
|
|
(constructor_decl result_type: (escaped_identifier) @type)
|
|
(function_decl name: (identifier) @function)
|
|
(function_decl name: (escaped_identifier) @function)
|
|
(function_decl parameters: (parameter_list (parameter type: (identifier) @type)))
|
|
(function_decl parameters: (parameter_list (parameter type: (escaped_identifier) @type)))
|
|
(function_decl result_type: (identifier) @type)
|
|
(function_decl result_type: (escaped_identifier) @type)
|
|
(predicate_decl name: (identifier) @function)
|
|
(predicate_decl name: (escaped_identifier) @function)
|
|
(predicate_decl parameters: (parameter_list (parameter type: (identifier) @type)))
|
|
(predicate_decl parameters: (parameter_list (parameter type: (escaped_identifier) @type)))
|
|
(value_decl name: (identifier) @variable)
|
|
(value_decl name: (escaped_identifier) @variable)
|
|
(value_decl type: (identifier) @type)
|
|
(value_decl type: (escaped_identifier) @type)
|
|
|
|
(predicate_modifier) @keyword.modifier
|
|
(arrow) @operator
|
|
(tilde) @operator
|
|
|
|
; Substance keywords
|
|
(substance_type_decl (identifier_list) @variable)
|
|
(substance_type_decl type: (identifier) @type)
|
|
(substance_type_decl type: (escaped_identifier) @type)
|
|
(assignment_stmt ":=" @operator)
|
|
(predicate_stmt (argument_list) @punctuation.bracket)
|
|
(label_stmt "Label" @keyword)
|
|
(autolabel_stmt "AutoLabel" @keyword)
|
|
(nolabel_stmt "NoLabel" @keyword)
|
|
(let_stmt "Let" @keyword)
|
|
(indexed_statement "for" @keyword)
|
|
(indexing_clause "in" @keyword)
|
|
(index_where_clause "where" @keyword)
|
|
|
|
(typed_assignment_stmt type: (identifier) @type)
|
|
(typed_assignment_stmt type: (escaped_identifier) @type)
|
|
(typed_assignment_stmt name: (identifier) @variable)
|
|
(typed_assignment_stmt name: (escaped_identifier) @variable)
|
|
|
|
(predicate_stmt name: (identifier) @function)
|
|
(predicate_stmt name: (escaped_identifier) @function)
|
|
|
|
; Style keywords
|
|
(forall_block "forall" @keyword)
|
|
(where_clause "where" @keyword)
|
|
(has_condition "has" @keyword)
|
|
(with_clause "with" @keyword)
|
|
(collect_block "collect" @keyword)
|
|
(collect_block "into" @keyword)
|
|
(foreach_clause "foreach" @keyword)
|
|
(foreach_clause "foreach" @keyword)
|
|
(with_clause "with" @keyword)
|
|
((named_block (identifier) @attribute)
|
|
(#match? @attribute "^(canvas|global|colors)$"))
|
|
((named_block (identifier) @namespace)
|
|
(#not-match? @namespace "^(canvas|global|colors)$"))
|
|
|
|
(typed_binding type: (identifier) @type)
|
|
(typed_binding type: (escaped_identifier) @type)
|
|
(typed_binding names: (identifier_list (identifier) @variable))
|
|
(typed_binding names: (identifier_list (escaped_identifier) @variable))
|
|
(binding_modifier) @keyword.modifier
|
|
(single_binding type: (identifier) @type)
|
|
(single_binding type: (escaped_identifier) @type)
|
|
(single_binding name: (identifier) @variable)
|
|
(single_binding name: (escaped_identifier) @variable)
|
|
|
|
(style_typed_assignment type: (identifier) @type)
|
|
(style_typed_assignment type: (escaped_identifier) @type)
|
|
(shape_literal name: (identifier) @type)
|
|
(shape_literal name: (escaped_identifier) @type)
|
|
(style_typed_assignment target: (property (identifier) @attribute))
|
|
(style_typed_assignment target: (property (escaped_identifier) @attribute))
|
|
(style_assignment target: (property (identifier) @attribute))
|
|
(style_assignment target: (property (escaped_identifier) @attribute))
|
|
(style_assignment target: (property (path (identifier) @attribute)))
|
|
(style_assignment target: (property (path (escaped_identifier) @attribute)))
|
|
(override_stmt target: (property (identifier) @attribute))
|
|
(override_stmt target: (property (escaped_identifier) @attribute))
|
|
(delete_stmt target: (property (identifier) @attribute))
|
|
(delete_stmt target: (property (escaped_identifier) @attribute))
|
|
(constraint_stmt target: (property (identifier) @attribute))
|
|
(constraint_stmt target: (property (escaped_identifier) @attribute))
|
|
(layer_stmt first: (property (identifier) @attribute))
|
|
(layer_stmt first: (property (escaped_identifier) @attribute))
|
|
(layer_stmt second: (property (identifier) @attribute))
|
|
(layer_stmt second: (property (escaped_identifier) @attribute))
|
|
(stack_stmt first: (property (identifier) @attribute))
|
|
(stack_stmt first: (property (escaped_identifier) @attribute))
|
|
(stack_stmt second: (property (identifier) @attribute))
|
|
(stack_stmt second: (property (escaped_identifier) @attribute))
|
|
|
|
(override_stmt "override" @keyword)
|
|
(delete_stmt "delete" @keyword)
|
|
(ensure_stmt "ensure" @keyword)
|
|
(encourage_stmt "encourage" @keyword)
|
|
(constraint_stmt "constraint" @keyword)
|
|
(layer_stmt "layer" @keyword)
|
|
(layer_stmt "above" @keyword.operator)
|
|
(layer_stmt "below" @keyword.operator)
|
|
(stack_stmt "above" @keyword.operator)
|
|
(stack_stmt "below" @keyword.operator)
|
|
(ensure_stmt "in" @keyword)
|
|
(encourage_stmt "in" @keyword)
|
|
(style_assignment ":" @operator)
|
|
(style_typed_assignment ":" @operator)
|
|
|
|
; Operators and punctuation
|
|
(wildcard "?" @operator)
|
|
(binary_expression ("+" @operator))
|
|
(binary_expression ("-" @operator))
|
|
(binary_expression ("*" @operator))
|
|
(binary_expression ("/" @operator))
|
|
(binary_expression ("%" @operator))
|
|
(binary_expression ("mod" @operator))
|
|
(binary_expression ("^" @operator))
|
|
(binary_expression (".*" @operator))
|
|
(binary_expression ("./" @operator))
|
|
(binary_expression ("then" @keyword.operator))
|
|
(binary_expression ("==" @operator))
|
|
(binary_expression ("!=" @operator))
|
|
(binary_expression ("<" @operator))
|
|
(binary_expression (">" @operator))
|
|
(binary_expression ("<=" @operator))
|
|
(binary_expression (">=" @operator))
|
|
(binary_expression ("&&" @operator))
|
|
(binary_expression ("||" @operator))
|
|
(unary_expression ("-" @operator))
|
|
(unary_expression ("+" @operator))
|
|
(unary_expression ("not" @keyword.operator))
|
|
(unary_expression ("!" @keyword.operator))
|
|
(transpose_expression ("'" @operator))
|
|
|
|
(argument_list "(" @punctuation.bracket)
|
|
(argument_list ")" @punctuation.bracket)
|
|
(parameter_list "(" @punctuation.bracket)
|
|
(parameter_list ")" @punctuation.bracket)
|
|
(list "[" @punctuation.bracket)
|
|
(list "]" @punctuation.bracket)
|
|
(vector "(" @punctuation.bracket)
|
|
(vector ")" @punctuation.bracket)
|
|
(tuple "{" @punctuation.bracket)
|
|
(tuple "}" @punctuation.bracket)
|
|
(block "{" @punctuation.bracket)
|
|
(block "}" @punctuation.bracket)
|
|
|
|
; Paths and properties
|
|
(path (identifier) @variable.other.member)
|
|
(path (escaped_identifier) @variable.other.member)
|
|
|
|
; Functions and calls
|
|
(call_expression (identifier) @function)
|
|
(call_expression (path) @function)
|
|
(numberof_expression "numberof" @function)
|
|
(listof_expression "listof" @function)
|
|
(nameof_expression "nameof" @function)
|