@@ -0,0 +1,72 @@
1+;; Primitives
2+(comment) @comment
3+(nat) @constant.numeric
4+(unit) @constant.builtin
5+(literal_char) @constant.character
6+(literal_text) @string
7+(literal_boolean) @constant.builtin.boolean
8+
9+;; Keywords
10+[
11+ (kw_forall)
12+ (unique_kw)
13+ (type_kw)
14+ (kw_equals)
15+ (do)
16+] @keyword
17+
18+(kw_let) @keyword.function
19+(type_kw) @keyword.storage.type
20+(unique) @keyword.storage.modifier
21+("use") @keyword.control.import
22+
23+
24+[
25+ (type_constructor)
26+] @constructor
27+
28+[
29+ (operator)
30+ (pipe)
31+ (arrow_symbol)
32+ (">")
33+ (or)
34+ (bang)
35+] @operator
36+
37+[
38+ "if"
39+ "else"
40+ "then"
41+ (match)
42+ (with)
43+ (cases)
44+] @keyword.control.conditional
45+
46+(blank_pattern) @variable.builtin
47+
48+;; Types
49+(record_field name: (wordy_id) @variable.other.member type: (wordy_id) @type)
50+[
51+ (type_name)
52+ (type_signature)
53+ (effect)
54+] @type
55+
56+(term_definition) @variable
57+
58+;; Punctuation
59+[
60+ (type_signature_colon)
61+ ":"
62+] @punctuation.delimiter
63+
64+[
65+ "("
66+ ")"
67+ "{"
68+ "}"
69+ "["
70+ "]"
71+] @punctuation.bracket
72+