blob: aecbdf48784e97aef3960a1869e2a76d14043e27 (
plain)
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
|
; CREDITS @stumash (stuart.mashaal@gmail.com)
;; variables
(
(identifier) @variable.builtin
(#match? @variable.builtin "^this$")
)
;; method calls
; method definition
(class_definition
body: (template_body
(function_definition
name: (identifier) @method)))
(object_definition
body: (template_body
(function_definition
name: (identifier) @method)))
(trait_definition
body: (template_body
(function_definition
name: (identifier) @method)))
; method invocation
(call_expression
function: (field_expression
field: (identifier) @method))
(
(identifier) @function.builtin
(#match? @function.builtin "^super$")
)
;; keywords
[
"abstract"
"case"
"class"
"extends"
"final"
"finally"
;; `forSome` existential types not implemented yet
"implicit"
"lazy"
;; `macro` not implemented yet
"object"
"override"
"package"
"private"
"protected"
"sealed"
"trait"
"type"
"val"
"var"
"with"
] @keyword
(null_literal) @keyword
;; special keywords
"new" @keyword.operator
[
"else"
"if"
"match"
] @conditional
[
"do"
"for"
"while"
"yield"
] @repeat
"def" @keyword.function
"import" @include
[
"try"
"catch"
"throw"
] @exception
"return" @keyword.return
;; `case` is a conditional keyword in case_block
(case_block
(case_clause ("case") @conditional))
|