299 lines
5.1 KiB
Scheme
299 lines
5.1 KiB
Scheme
; See: https://docs.helix-editor.com/master/themes.html#syntax-highlighting
|
|
; -------------------------------------------------------------------------
|
|
|
|
; attribute
|
|
; ---------
|
|
|
|
[
|
|
"@name"
|
|
"@interface"
|
|
] @attribute
|
|
|
|
; comment.line
|
|
; ------------
|
|
|
|
((comment) @comment.line
|
|
(#match? @comment.line "^//"))
|
|
|
|
; comment.block
|
|
; -------------
|
|
|
|
(comment) @comment.block
|
|
|
|
; function.builtin
|
|
; ----------------
|
|
|
|
((identifier) @function.builtin
|
|
(#any-of? @function.builtin
|
|
"send" "sender" "require" "now"
|
|
"myBalance" "myAddress" "newAddress"
|
|
"contractAddress" "contractAddressExt"
|
|
"emit" "cell" "ton"
|
|
"beginString" "beginComment" "beginTailString" "beginStringFromBuilder" "beginCell" "emptyCell"
|
|
"randomInt" "random"
|
|
"checkSignature" "checkDataSignature" "sha256"
|
|
"min" "max" "abs" "pow"
|
|
"throw" "dump" "getConfigParam"
|
|
"nativeThrowWhen" "nativeThrowUnless" "nativeReserve"
|
|
"nativeRandomize" "nativeRandomizeLt" "nativePrepareRandom" "nativeRandom" "nativeRandomInterval")
|
|
(#is-not? local))
|
|
|
|
; function.method
|
|
; ---------------
|
|
|
|
(method_call_expression
|
|
name: (identifier) @function.method)
|
|
|
|
; function
|
|
; --------
|
|
|
|
(func_identifier) @function
|
|
|
|
(native_function
|
|
name: (identifier) @function)
|
|
|
|
(static_function
|
|
name: (identifier) @function)
|
|
|
|
(static_call_expression
|
|
name: (identifier) @function)
|
|
|
|
(init_function
|
|
"init" @function.method)
|
|
|
|
(receive_function
|
|
"receive" @function.method)
|
|
|
|
(bounced_function
|
|
"bounced" @function.method)
|
|
|
|
(external_function
|
|
"external" @function.method)
|
|
|
|
(function
|
|
name: (identifier) @function.method)
|
|
|
|
; keyword.control.conditional
|
|
; ---------------------------
|
|
|
|
[
|
|
"if" "else"
|
|
] @keyword.control.conditional
|
|
|
|
; keyword.control.repeat
|
|
; ----------------------
|
|
|
|
[
|
|
"while" "repeat" "do" "until"
|
|
] @keyword.control.repeat
|
|
|
|
; keyword.control.import
|
|
; ----------------------
|
|
|
|
"import" @keyword.control.import
|
|
|
|
; keyword.control.return
|
|
; ----------------------
|
|
|
|
"return" @keyword.control.return
|
|
|
|
; keyword.operator
|
|
; ----------------
|
|
|
|
"initOf" @keyword.operator
|
|
|
|
; keyword.directive
|
|
; -----------------
|
|
|
|
"primitive" @keyword.directive
|
|
|
|
; keyword.function
|
|
; ----------------
|
|
|
|
[
|
|
"fun"
|
|
"native"
|
|
] @keyword.function
|
|
|
|
; keyword.storage.type
|
|
; --------------------
|
|
|
|
[
|
|
"contract" "trait" "struct" "message" "with"
|
|
"const" "let"
|
|
] @keyword.storage.type
|
|
|
|
; keyword.storage.modifier
|
|
; ------------------------
|
|
|
|
[
|
|
"get" "mutates" "extends" "virtual" "override" "inline" "abstract"
|
|
] @keyword.storage.modifier
|
|
|
|
; keyword
|
|
; -------
|
|
|
|
[
|
|
"with"
|
|
; "public" ; -- not used, but declared in grammar.ohm
|
|
; "extend" ; -- not used, but declared in grammar.ohm
|
|
] @keyword
|
|
|
|
; constant.builtin.boolean
|
|
; ------------------------
|
|
|
|
(boolean) @constant.builtin.boolean
|
|
|
|
; constant.builtin
|
|
; ----------------
|
|
|
|
((identifier) @constant.builtin
|
|
(#any-of? @constant.builtin
|
|
"SendPayGasSeparately"
|
|
"SendIgnoreErrors"
|
|
"SendDestroyIfZero"
|
|
"SendRemainingValue"
|
|
"SendRemainingBalance")
|
|
(#is-not? local))
|
|
|
|
(null) @constant.builtin
|
|
|
|
; constant.numeric.integer
|
|
; ------------------------
|
|
|
|
(integer) @constant.numeric.integer
|
|
|
|
; constant
|
|
; --------
|
|
|
|
(constant
|
|
name: (identifier) @constant)
|
|
|
|
; string.special.path
|
|
; -------------------
|
|
|
|
(import_statement
|
|
library: (string) @string.special.path)
|
|
|
|
; string
|
|
; ------
|
|
|
|
(string) @string
|
|
|
|
; type.builtin
|
|
; ------------
|
|
|
|
(tlb_serialization
|
|
"as" @keyword
|
|
type: (identifier) @type.builtin
|
|
(#any-of? @type.builtin
|
|
"int8" "int16" "int32" "int64" "int128" "int256" "int257"
|
|
"uint8" "uint16" "uint32" "uint64" "uint128" "uint256"
|
|
"coins" "remaining" "bytes32" "bytes64"))
|
|
|
|
((type_identifier) @type.builtin
|
|
(#any-of? @type.builtin
|
|
"Address" "Bool" "Builder" "Cell" "Int" "Slice" "String" "StringBuilder"))
|
|
|
|
(map_type
|
|
"map" @type.builtin
|
|
"<" @punctuation.bracket
|
|
">" @punctuation.bracket)
|
|
|
|
(bounced_type
|
|
"bounced" @type.builtin
|
|
"<" @punctuation.bracket
|
|
">" @punctuation.bracket)
|
|
|
|
((identifier) @type.builtin
|
|
(#eq? @type.builtin "SendParameters")
|
|
(#is-not? local))
|
|
|
|
; type
|
|
; ----
|
|
|
|
(type_identifier) @type
|
|
|
|
; constructor
|
|
; -----------
|
|
|
|
(instance_expression
|
|
name: (identifier) @constructor)
|
|
|
|
(initOf
|
|
name: (identifier) @constructor)
|
|
|
|
; operator
|
|
; --------
|
|
|
|
[
|
|
"-" "-="
|
|
"+" "+="
|
|
"*" "*="
|
|
"/" "/="
|
|
"%" "%="
|
|
"=" "=="
|
|
"!" "!=" "!!"
|
|
"<" "<=" "<<"
|
|
">" ">=" ">>"
|
|
"&" "|"
|
|
"&&" "||"
|
|
] @operator
|
|
|
|
; punctuation.bracket
|
|
; -------------------
|
|
|
|
[
|
|
"(" ")"
|
|
"{" "}"
|
|
] @punctuation.bracket
|
|
|
|
; punctuation.delimiter
|
|
; ---------------------
|
|
|
|
[
|
|
";"
|
|
","
|
|
"."
|
|
":"
|
|
"?"
|
|
] @punctuation.delimiter
|
|
|
|
; variable.other.member
|
|
; ---------------------
|
|
|
|
(field
|
|
name: (identifier) @variable.other.member)
|
|
|
|
(contract_body
|
|
(constant
|
|
name: (identifier) @variable.other.member))
|
|
|
|
(trait_body
|
|
(constant
|
|
name: (identifier) @variable.other.member))
|
|
|
|
(field_access_expression
|
|
name: (identifier) @variable.other.member)
|
|
|
|
(lvalue (_) (_) @variable.other.member)
|
|
|
|
(instance_argument
|
|
name: (identifier) @variable.other.member)
|
|
|
|
; variable.parameter
|
|
; ------------------
|
|
|
|
(parameter
|
|
name: (identifier) @variable.parameter)
|
|
|
|
; variable.builtin
|
|
; ----------------
|
|
|
|
(self) @variable.builtin
|
|
|
|
; variable
|
|
; --------
|
|
|
|
(identifier) @variable
|