summaryrefslogtreecommitdiff
path: root/runtime/queries/tact/highlights.scm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/tact/highlights.scm')
-rw-r--r--runtime/queries/tact/highlights.scm298
1 files changed, 298 insertions, 0 deletions
diff --git a/runtime/queries/tact/highlights.scm b/runtime/queries/tact/highlights.scm
new file mode 100644
index 00000000..53bf985b
--- /dev/null
+++ b/runtime/queries/tact/highlights.scm
@@ -0,0 +1,298 @@
+; 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