diff --git a/nvim/queries/php_only/highlights.scm b/nvim/queries/php_only/highlights.scm index 25bb6bb..d01c3ed 100644 --- a/nvim/queries/php_only/highlights.scm +++ b/nvim/queries/php_only/highlights.scm @@ -1,16 +1,35 @@ ; extends +; NOTE: Some LSPs sets semantic tokens, so override those with high priority (150) + ; php tags should be tagged as preprocessor tokens (php_tag) @preproc ; Tag names in class definition -(class_declaration [ - name: (name) @class.name - (base_clause (name) @class.inherit.name) - (class_interface_clause (name) @class.implements.name) -]) +(class_declaration + (name) @class.declaration.name.php + (#set! priority 150)) -(interface_declaration (name) @interface.name) +(class_declaration + (base_clause (name) @class.declaration.inherit.name.php) + (#set! priority 150)) + +(class_declaration + (class_interface_clause (name) @class.declaration.implement.name.php) + (#set! priority 150)) + +(interface_declaration (name) + @interface.declaration.name + (#set! priority 150)) + +; semantic tokens sometimes targets the entire namespace. So tag it here to override. +(qualified_name [ (namespace_name) "\\"] @class.use.base.php (#set! priority 150)) + +; last name node in namespace definition +(namespace_definition + name: (namespace_name + (name) @namespace.name (#set! priority 150) .) +) ; tag trait name in use declaration (use_declaration (name) @use.trait.name) @@ -18,7 +37,11 @@ ; tag name token in "use" use namespace declaration (namespace_use_declaration (namespace_use_clause [ (qualified_name [ - (name) @namespace.name + (name) @namespace.name (#set! priority 150) ]) - alias: (name) @namespace.alias.name + alias: (name) @namespace.alias.name (#set! priority 150) ])) + + + +