Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/php/highlights.scm')
-rw-r--r--runtime/queries/php/highlights.scm342
1 files changed, 71 insertions, 271 deletions
diff --git a/runtime/queries/php/highlights.scm b/runtime/queries/php/highlights.scm
index 737e2d5f..5379fa1e 100644
--- a/runtime/queries/php/highlights.scm
+++ b/runtime/queries/php/highlights.scm
@@ -1,83 +1,12 @@
(php_tag) @tag
"?>" @tag
-; Variables
-
-(relative_scope) @variable.builtin
-
-(variable_name) @variable
-
-((name) @constant
- (#match? @constant "^_?[A-Z][A-Z\\d_]+$"))
-
-((name) @constructor
- (#match? @constructor "^[A-Z]"))
-
-((name) @variable.builtin
- (#eq? @variable.builtin "this"))
-
; Types
-[
- (primitive_type)
- (cast_type)
-] @type.builtin
-
-(named_type
- [ (name) @type
- (qualified_name (name) @type)])
-
-(base_clause
- [ (name) @type
- (qualified_name (name) @type)])
-
-(enum_declaration
- name: (name) @type.enum)
-(interface_declaration
- name: (name) @constructor)
-
-(class_declaration
- name: (name) @constructor)
-
-(trait_declaration
- name:(name) @constructor)
-
-(namespace_definition
- name: (namespace_name (name) @namespace))
-
-(namespace_name_as_prefix
- (namespace_name (name) @namespace))
-
-(namespace_use_clause
- [ (name) @namespace
- (qualified_name (name) @type) ])
-
-(namespace_aliasing_clause (name) @namespace)
-
-(class_interface_clause
- [(name) @type
- (qualified_name (name) @type)])
-
-(scoped_call_expression
- scope: [(name) @type
- (qualified_name (name) @type)])
-
-(class_constant_access_expression
- . [(name) @constructor
- (qualified_name (name) @constructor)]
- (name) @constant)
-
-(use_declaration (name) @type)
-
-(binary_expression
- operator: "instanceof"
- right: [(name) @type
- (qualified_name (name) @type)])
-
-; Superglobals
-(subscript_expression
- (variable_name(name) @constant.builtin
- (#match? @constant.builtin "^_?[A-Z][A-Z\\d_]+$")))
+(primitive_type) @type.builtin
+(cast_type) @type.builtin
+(named_type (name) @type) @type
+(named_type (qualified_name) @type) @type
; Functions
@@ -88,7 +17,7 @@
name: (name) @function.method)
(function_call_expression
- function: (_) @function)
+ function: (qualified_name (name)) @function)
(scoped_call_expression
name: (name) @function)
@@ -99,22 +28,6 @@
(function_definition
name: (name) @function)
-(nullsafe_member_call_expression
- name: (name) @function.method)
-
-(object_creation_expression
- [(name) @constructor
- (qualified_name (name) @constructor)])
-
-; Parameters
-[
- (simple_parameter)
- (variadic_parameter)
-] @variable.parameter
-
-(argument
- (name) @variable.parameter)
-
; Member
(property_element
@@ -125,194 +38,81 @@
(member_access_expression
name: (name) @variable.other.member)
-; Attributes
-(attribute_list) @attribute
+; Variables
-; Basic tokens
+(relative_scope) @variable.builtin
+
+((name) @constant
+ (#match? @constant "^_?[A-Z][A-Z\\d_]+$"))
+
+((name) @constructor
+ (#match? @constructor "^[A-Z]"))
-[
- (string)
- (encapsed_string)
- (heredoc_body)
- (nowdoc_body)
- (shell_command_expression)
-] @string
-(escape_sequence) @constant.character.escape
+((name) @variable.builtin
+ (#eq? @variable.builtin "this"))
+(variable_name) @variable
+
+; Basic tokens
+
+(string) @string
+(heredoc) @string
(boolean) @constant.builtin.boolean
(null) @constant.builtin
(integer) @constant.numeric.integer
(float) @constant.numeric.float
(comment) @comment
-(goto_statement (name) @label)
-(named_label_statement (name) @label)
+"$" @operator
; Keywords
-[
- "default"
- "echo"
- "enum"
- "extends"
- "final"
- "goto"
- "global"
- "implements"
- "insteadof"
- "new"
- "private"
- "protected"
- "public"
- "clone"
- "unset"
-] @keyword
-
-[
- "if"
- "else"
- "elseif"
- "endif"
- "switch"
- "endswitch"
- "case"
- "match"
- "declare"
- "enddeclare"
- "??"
-] @keyword.control.conditional
-
-[
- "for"
- "endfor"
- "foreach"
- "endforeach"
- "while"
- "endwhile"
- "do"
-] @keyword.control.repeat
-
-[
-
- "include_once"
- "include"
- "require_once"
- "require"
- "use"
-] @keyword.control.import
-
-[
- "return"
- "break"
- "continue"
- "yield"
-] @keyword.control.return
-
-[
- "throw"
- "try"
- "catch"
- "finally"
-] @keyword.control.exception
-
-[
- "as"
- "or"
- "xor"
- "and"
- "instanceof"
-] @keyword.operator
-
-[
- "fn"
- "function"
-] @keyword.function
-
-[
- "namespace"
- "class"
- "interface"
- "trait"
- "abstract"
-] @keyword.storage.type
-
-[
- "static"
- "const"
-] @keyword.storage.modifier
-
-[
- ","
- ";"
- ":"
- "\\"
- ] @punctuation.delimiter
-
-[
- (php_tag)
- "?>"
- "("
- ")"
- "["
- "]"
- "{"
- "}"
- "#["
-] @punctuation.bracket
-
-[
- "="
-
- "."
- "-"
- "*"
- "/"
- "+"
- "%"
- "**"
-
- "~"
- "|"
- "^"
- "&"
- "<<"
- ">>"
-
- "->"
- "?->"
-
- "=>"
-
- "<"
- "<="
- ">="
- ">"
- "<>"
- "=="
- "!="
- "==="
- "!=="
-
- "!"
- "&&"
- "||"
-
- ".="
- "-="
- "+="
- "*="
- "/="
- "%="
- "**="
- "&="
- "|="
- "^="
- "<<="
- ">>="
- "??="
- "--"
- "++"
-
- "@"
- "::"
-] @operator
+"abstract" @keyword
+"as" @keyword
+"break" @keyword
+"case" @keyword
+"catch" @keyword
+"class" @keyword
+"const" @keyword
+"continue" @keyword
+"declare" @keyword
+"default" @keyword
+"do" @keyword
+"echo" @keyword
+"else" @keyword
+"elseif" @keyword
+"enddeclare" @keyword
+"endforeach" @keyword
+"endif" @keyword
+"endswitch" @keyword
+"endwhile" @keyword
+"enum" @keyword
+"extends" @keyword
+"final" @keyword
+"finally" @keyword
+"foreach" @keyword
+"fn" @keyword
+"function" @keyword
+"global" @keyword
+"if" @keyword
+"implements" @keyword
+"include_once" @keyword
+"include" @keyword
+"insteadof" @keyword
+"interface" @keyword
+"match" @keyword
+"namespace" @keyword
+"new" @keyword
+"private" @keyword
+"protected" @keyword
+"public" @keyword
+"require_once" @keyword
+"require" @keyword
+"return" @keyword
+"static" @keyword
+"switch" @keyword
+"throw" @keyword
+"trait" @keyword
+"try" @keyword
+"use" @keyword
+"while" @keyword