aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/runescript/highlights.scm
blob: d0c9432bdcda49d6c3c3085e9f42bcfc4be18ea2 (plain) (blame)
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
; Variables
(identifier) @variable

(local_variable
  "$" @attribute.builtin)

(game_variable
  [
    "%"
    ".%"
  ] @attribute.builtin)

(constant_variable
  "^" @attribute.builtin)

(parameter
  (local_variable
    name: (identifier) @variable.parameter))

; Scripts
(script
  trigger: (identifier) @keyword.directive
  subject: (identifier) @function)

; Calls
(call
  [
    "~"
    "@"
  ]? @attribute.builtin
  callee: (identifier) @function.call)

; Literals
((literal) @boolean
  (#any-of? @boolean "true" "false"))

(literal
  "null" @constant.builtin)

(integer_literal) @number

(coord_literal) @string.special

(comment) @comment @spell

[
  (string_fragment)
  "\""
] @string

(escape_sequence) @string.escape

(string_interpolation
  [
    "<"
    ">"
  ] @punctuation.special)

(string_tag) @punctuation.special

; Types
(type) @type

(parameter_type) @type

; Tokens
[
  ";"
  ":"
  ","
] @punctuation.delimiter

[
  "("
  ")"
  "{"
  "}"
] @punctuation.bracket

[
  "["
  "]"
] @punctuation.special

[
  "*"
  "/"
  "+"
  "-"
  "&"
  "|"
  ">"
  ">="
  "<"
  "<="
  "="
  "!"
] @operator

(arithmetic
  "%" @operator)

[
  (def_type_keyword)
  (switch_type_keyword)
] @keyword.modifier

"return" @keyword.return

"while" @keyword.repeat

[
  "default"
  "if"
  "else"
  "case"
] @keyword.conditional

"calc" @keyword