mirror of
https://github.com/helix-editor/helix
synced 2026-08-05 14:42:57 +02:00
220 lines
2.6 KiB
Scheme
220 lines
2.6 KiB
Scheme
; Variables
|
|
(iden_type
|
|
name: (identifier) @variable)
|
|
|
|
(fun_param
|
|
name: (identifier) @variable.parameter)
|
|
|
|
[
|
|
"this"
|
|
] @variable.builtin
|
|
|
|
(named_tuple_access_expr
|
|
(expr
|
|
(primitive_expr
|
|
(identifier)))
|
|
field: (identifier) @variable.other.member)
|
|
|
|
; Functions
|
|
(p_fun_decl
|
|
name: (identifier) @function)
|
|
|
|
[
|
|
"choose"
|
|
"format"
|
|
"keys"
|
|
"values"
|
|
] @function.builtin
|
|
|
|
; Comments
|
|
[
|
|
(block_comment)
|
|
(line_comment)
|
|
] @comment
|
|
|
|
; Types
|
|
[
|
|
"any"
|
|
"bool"
|
|
"eventset"
|
|
"float"
|
|
"int"
|
|
"interface"
|
|
"map"
|
|
"set"
|
|
"string"
|
|
"seq"
|
|
"data"
|
|
] @type.builtin
|
|
|
|
; Type definitions
|
|
(type_def_decl
|
|
name: (identifier) @type.definition)
|
|
(enum_type_def_decl
|
|
name: (identifier) @type.definition)
|
|
(event_decl
|
|
name: (identifier) @type.definition)
|
|
(impl_machine_decl
|
|
name: (identifier) @type.definition)
|
|
(spec_machine_decl
|
|
name: (identifier) @type.definition)
|
|
(state_decl
|
|
name: (identifier) @type.definition)
|
|
|
|
(named_type
|
|
name: (identifier) @type)
|
|
(state_name
|
|
state: (identifier) @type)
|
|
(enum_elem
|
|
name: (identifier) @type)
|
|
(non_default_event
|
|
(identifier) @type)
|
|
(event_id
|
|
(identifier) @type)
|
|
|
|
; Keywords
|
|
[
|
|
"announce"
|
|
"as"
|
|
"assert"
|
|
"break"
|
|
"case"
|
|
"continue"
|
|
"default"
|
|
"defer"
|
|
"do"
|
|
"entry"
|
|
"exit"
|
|
"foreach"
|
|
"goto"
|
|
"halt"
|
|
"ignore"
|
|
"in"
|
|
"new"
|
|
"observes"
|
|
"on"
|
|
"print"
|
|
"raise"
|
|
"receive"
|
|
"send"
|
|
"sizeof"
|
|
"spec"
|
|
"start"
|
|
"state"
|
|
"var"
|
|
"param"
|
|
"pairwise"
|
|
"wise"
|
|
"with"
|
|
; PVerifier keywords
|
|
"invariant"
|
|
"axiom"
|
|
"is"
|
|
"inflight"
|
|
"targets"
|
|
"sent"
|
|
"Proof"
|
|
"prove"
|
|
"using"
|
|
"Lemma"
|
|
"Theorem"
|
|
"except"
|
|
"requires"
|
|
"ensures"
|
|
"forall"
|
|
"exists"
|
|
"init-condition"
|
|
"pure"
|
|
"assume"
|
|
; module-system-specific keywords
|
|
; module-test-implementation declarations
|
|
"module"
|
|
"implementation"
|
|
"test"
|
|
"refines"
|
|
; module constructors
|
|
"compose"
|
|
"union"
|
|
"hidee"
|
|
"hidei"
|
|
"rename"
|
|
"main"
|
|
; machine annotations
|
|
"receives"
|
|
"sends"
|
|
; common keywords
|
|
"creates"
|
|
"to"
|
|
(temperature_hot)
|
|
(temperature_cold)
|
|
(null_literal)
|
|
] @keyword
|
|
|
|
[ "fun" ] @keyword.function
|
|
|
|
[
|
|
"enum"
|
|
"event"
|
|
"machine"
|
|
"type"
|
|
] @keyword.storage.type
|
|
|
|
[ "while" ] @keyword.control.repeat
|
|
|
|
[ "return" ] @keyword.control.return
|
|
|
|
[
|
|
"if"
|
|
"else"
|
|
] @keyword.control.conditional
|
|
|
|
; Literals
|
|
[ (bool_literal) ] @constant.builtin.boolean
|
|
|
|
(int_literal) @constant.numeric.integer
|
|
(float_literal) @constant.numeric.float
|
|
|
|
(string_literal) @string
|
|
|
|
; Symbols / Operators
|
|
[
|
|
"$$"
|
|
"$"
|
|
"!"
|
|
"&&"
|
|
"||"
|
|
"==>"
|
|
"<==>"
|
|
"=="
|
|
"!="
|
|
"<="
|
|
">="
|
|
"<"
|
|
">"
|
|
"->"
|
|
"="
|
|
"+="
|
|
"-="
|
|
"+"
|
|
"-"
|
|
"*"
|
|
"/"
|
|
"%"
|
|
] @operator
|
|
|
|
[
|
|
":"
|
|
";"
|
|
","
|
|
"."
|
|
] @punctuation.delimiter
|
|
|
|
[
|
|
"{"
|
|
"}"
|
|
"["
|
|
"]"
|
|
"("
|
|
")"
|
|
] @punctuation.bracket
|