From a32242cefbce2ea85978e776b98b1925fb54f8e7 Mon Sep 17 00:00:00 2001 From: Alfredo Menezes Date: Mon, 16 Feb 2026 17:44:05 -0500 Subject: [PATCH] Fix class constant highlighting (e.g., Conversation::RESOURCE_RELATIONS) Two changes: - Add explicit rule for class_constant_access_expression to capture the constant name as @constant - Reorder @constructor before @constant so that UPPER_SNAKE_CASE names (like RESOURCE_RELATIONS, PHP_INT_MAX) correctly get @constant instead of being overridden by the generic @constructor catch-all --- languages/php/highlights.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/languages/php/highlights.scm b/languages/php/highlights.scm index 07af151..770be86 100644 --- a/languages/php/highlights.scm +++ b/languages/php/highlights.scm @@ -50,6 +50,11 @@ (nullsafe_member_access_expression name: (name) @property) +; Class constant access (e.g., Class::CONSTANT) + +(class_constant_access_expression + (_) (name) @constant) + ; Special classes (relative_scope) @constructor @@ -64,14 +69,14 @@ ; Variables +((name) @constructor + (#match? @constructor "^[A-Z]")) + ((name) @constant (#match? @constant "^_?[A-Z][A-Z\\d_]+$")) ((name) @constant.builtin (#match? @constant.builtin "^__[A-Z][A-Z\d_]+__$")) -((name) @constructor - (#match? @constructor "^[A-Z]")) - ((name) @variable.builtin (#eq? @variable.builtin "this"))