php: Highlight PHPDoc comments (#11695)

claytonrcarter created

This adds highlighting of phpdoc tags and PHP types to phpdoc comments,
using
[tree-sitter-phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc)
(maintained by yours me, and also in use by neovim).

<table>
<tr>
<td>
<strong>Before</strong>
<img
src="https://github.com/zed-industries/zed/assets/1420419/bae4c502-8a2c-4399-893f-fcff4e5797b6">
</td>
<td>
<strong>After</strong>
<img
src="https://github.com/zed-industries/zed/assets/1420419/8848e9fb-61a0-4938-a118-7041da9589c0">
</td>
</tr>
</table>


Release Notes:

- N/A

Change summary

extensions/php/extension.toml                  |  4 ++++
extensions/php/languages/php/injections.scm    |  4 ++++
extensions/php/languages/phpdoc/config.toml    |  9 +++++++++
extensions/php/languages/phpdoc/highlights.scm | 13 +++++++++++++
4 files changed, 30 insertions(+)

Detailed changes

extensions/php/extension.toml 🔗

@@ -15,3 +15,7 @@ language_ids = { PHP = "php"}
 repository = "https://github.com/tree-sitter/tree-sitter-php"
 commit = "8ab93274065cbaf529ea15c24360cfa3348ec9e4"
 path = "php"
+
+[grammars.phpdoc]
+repository = "https://github.com/claytonrcarter/tree-sitter-phpdoc"
+commit = "1d0e255b37477d0ca46f1c9e9268c8fa76c0b3fc"

extensions/php/languages/phpdoc/config.toml 🔗

@@ -0,0 +1,9 @@
+name = "PHPDoc"
+grammar = "phpdoc"
+autoclose_before = "]})>"
+brackets = [
+  { start = "{", end = "}", close = true, newline = false },
+  { start = "[", end = "]", close = true, newline = false },
+  { start = "(", end = ")", close = true, newline = false },
+  { start = "<", end = ">", close = true, newline = false },
+]

extensions/php/languages/phpdoc/highlights.scm 🔗

@@ -0,0 +1,13 @@
+(tag_name) @keyword
+
+(tag (variable_name) @variable)
+(variable_name "$" @operator)
+
+(tag
+  (tag_name) @keyword
+  (#eq? @keyword "@method")
+  (name) @function.method)
+
+(primitive_type) @type.builtin
+(named_type (name) @type) @type
+(named_type (qualified_name) @type) @type