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"const" @keyword
84"continue" @keyword
85"declare" @keyword
86"default" @keyword
87"do" @keyword
88"echo" @keyword
89"else" @keyword
90"elseif" @keyword
91"enum" @keyword
92"enddeclare" @keyword
93"endforeach" @keyword
94"endif" @keyword
95"endswitch" @keyword
96"endwhile" @keyword
97"extends" @keyword
98"final" @keyword
99"readonly" @keyword
100"finally" @keyword
101"foreach" @keyword
102"function" @keyword
103"global" @keyword
104"if" @keyword
105"implements" @keyword
106"include_once" @keyword
107"include" @keyword
108"insteadof" @keyword
109"interface" @keyword
110"namespace" @keyword
111"new" @keyword
112"private" @keyword
113"protected" @keyword
114"public" @keyword
115"require_once" @keyword
116"require" @keyword
117"return" @keyword
118"static" @keyword
119"switch" @keyword
120"throw" @keyword
121"trait" @keyword
122"try" @keyword
123"use" @keyword
124"while" @keyword
125"yield" @keyword