1(php_tag) @tag
2"?>" @tag
3
4; Types
5
6(primitive_type) @type.builtin
7(cast_type) @type.builtin
8(named_type (name) @type) @type
9(named_type (qualified_name) @type) @type
10
11; Functions
12
13(array_creation_expression "array" @function.builtin)
14(list_literal "list" @function.builtin)
15
16(method_declaration
17 name: (name) @function.method)
18
19(function_call_expression
20 function: [(qualified_name (name)) (name)] @function)
21
22(scoped_call_expression
23 name: (name) @function)
24
25(member_call_expression
26 name: (name) @function.method)
27
28(function_definition
29 name: (name) @function)
30
31; Member
32
33(property_element
34 (variable_name) @property)
35
36(member_access_expression
37 name: (variable_name (name)) @property)
38(member_access_expression
39 name: (name) @property)
40
41; Variables
42
43(relative_scope) @variable.builtin
44
45((name) @constant
46 (#match? @constant "^_?[A-Z][A-Z\\d_]+$"))
47((name) @constant.builtin
48 (#match? @constant.builtin "^__[A-Z][A-Z\d_]+__$"))
49
50((name) @constructor
51 (#match? @constructor "^[A-Z]"))
52
53((name) @variable.builtin
54 (#eq? @variable.builtin "this"))
55
56(variable_name) @variable
57
58; Basic tokens
59[
60 (string)
61 (string_value)
62 (encapsed_string)
63 (heredoc)
64 (heredoc_body)
65 (nowdoc_body)
66] @string
67(boolean) @constant.builtin
68(null) @constant.builtin
69(integer) @number
70(float) @number
71(comment) @comment
72
73"$" @operator
74
75; Keywords
76
77"abstract" @keyword
78"as" @keyword
79"break" @keyword
80"case" @keyword
81"catch" @keyword
82"class" @keyword
83"clone" @keyword
84"const" @keyword
85"continue" @keyword
86"declare" @keyword
87"default" @keyword
88"do" @keyword
89"echo" @keyword
90"else" @keyword
91"elseif" @keyword
92"enum" @keyword
93"enddeclare" @keyword
94"endforeach" @keyword
95"endif" @keyword
96"endswitch" @keyword
97"endwhile" @keyword
98"extends" @keyword
99"final" @keyword
100"readonly" @keyword
101"finally" @keyword
102"foreach" @keyword
103"fn" @keyword
104"function" @keyword
105"global" @keyword
106"if" @keyword
107"implements" @keyword
108"include_once" @keyword
109"include" @keyword
110"insteadof" @keyword
111"interface" @keyword
112"match" @keyword
113"namespace" @keyword
114"new" @keyword
115"private" @keyword
116"protected" @keyword
117"public" @keyword
118"require_once" @keyword
119"require" @keyword
120"return" @keyword
121"static" @keyword
122"switch" @keyword
123"throw" @keyword
124"trait" @keyword
125"try" @keyword
126"use" @keyword
127"while" @keyword
128"yield" @keyword
129"yield from" @keyword