1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104; Comments
(comment) @comment
; Literals
[
(int_lit)
(uint_lit)
] @constant.numeric.integer
[
(bool_lit)
(none_lit)
] @constant.builtin
[
(ascii_string_lit)
(utf8_string_lit)
] @string
[
(buffer_lit)
(standard_principal_lit)
(contract_principal_lit)
] @string.special
; Types
[
(native_type)
(trait_type)
] @type
; Punctuation
[
"("
")"
"{"
"}"
"<"
">"
] @punctuation.bracket
[
","
] @punctuation.delimiter
; Keywords
(list_lit_token) @keyword
(some_lit ("some") @keyword)
(response_lit [
"ok"
"err"
] @keyword)
[
"+"
"-"
"*"
"/"
"mod"
"pow"
"<"
"<="
">"
">="
"and"
"or"
"xor"
] @keyword.operator
; Functions
(function_signature (identifier) @function)
(function_signature_for_trait (identifier) @function)
(contract_function_call operator: (identifier) @function)
(basic_native_form operator: (native_identifier) @function.builtin)
[
"let"
] @function.builtin
[
"impl-trait"
"use-trait"
"define-trait"
"define-read-only"
"define-private"
"define-public"
"define-data-var"
"define-fungible-token"
"define-non-fungible-token"
"define-constant"
"define-map"
] @function.special
; Variables and parameters
(function_parameter) @variable.parameter
(trait_usage trait_alias: (identifier) @type.parameter)
(tuple_lit key: (identifier) @variable)
(tuple_type key: (identifier) @variable)
(tuple_type_for_trait key: (identifier) @variable)
(global) @variable.builtin