@@ -0,0 +1,118 @@
5+ (arguments (atom) @module)
6+ (#eq? @keyword "module"))
13+ (#eq? @keyword "import"))
16+ name: (atom) @keyword
21+ (tuple (atom) @variable.other.member)
24+ left: (atom) @variable.other.member
30+ left: (atom) @variable.other.member
34+ (#eq? @keyword "record"))
37+ name: (atom) @keyword
41+ (atom) @keyword.directive
42+ (variable) @keyword.directive
45+ [(variable) (atom)] @keyword.directive)
47+ (#eq? @keyword "define"))
50+ name: (atom) @keyword
51+ module: (atom) @module
52+ (#eq? @keyword "spec"))
55+(function name: (atom) @function)
56+(call module: (atom) @module)
57+(call function: (atom) @function)
58+(stab_clause name: (atom) @function)
59+(function_capture module: (atom) @module)
60+(function_capture function: (atom) @function)
65+ left: (atom) @variable.other.member
68+(record field: (atom) @variable.other.member)
69+(record name: (atom) @type)
72+((attribute name: (atom) @keyword)
75+ "^(define|export|export_type|include|include_lib|ifdef|ifndef|if|elif|else|endif|vsn|on_load|behaviour|record|file|type|opaque|spec)$"))
77+["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after"] @keyword
81+ left: (atom) @function
83+ right: (integer) @constant.numeric.integer)
85+(binary_operator operator: _ @operator)
86+(unary_operator operator: _ @operator)
87+["/" ":" "#" "->"] @operator
90+((variable) @comment.discard
91+ (#match? @comment.discard "^_"))
93+(tripledot) @comment.discard
99+ "?"+ @keyword.directive
100+ name: (_) @keyword.directive)
107+] @string.special.symbol
109+(character) @constant.character
111+(integer) @constant.numeric.integer
112+(float) @constant.numeric.float
115+["," "." "-" ";"] @punctuation.delimiter
116+["(" ")" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket