Improve JSDoc injection in comments (#10800)

José Olórtegui created

This PR improves JSDoc injection for syntax highlighting. Now we are
only injecting JSDoc in block comments. The regex was mostly adapted
from nvim-treesitter's implementation (lua) to a rust regex.


https://github.com/nvim-treesitter/nvim-treesitter/blob/eb93c3b2fbe9ca55d70e9297d5c037880b997559/queries/ecma/injections.scm#L1-L6

**Before:**
<img width="441" alt="Screenshot 2024-04-20 at 5 51 04 AM"
src="https://github.com/zed-industries/zed/assets/20072509/8e77851d-22ad-4dc4-8e10-9ac558d3cf40">

**After:**
<img width="441" alt="Screenshot 2024-04-20 at 5 52 05 AM"
src="https://github.com/zed-industries/zed/assets/20072509/a607c219-6973-40c3-958c-44a003d008c3">

Release Notes:

- Changed detection of JSDoc to only do syntax highlighting in block
comments. Improved previous work done in #7826.

Change summary

crates/languages/src/javascript/injections.scm | 3 ++-
crates/languages/src/tsx/injections.scm        | 3 ++-
crates/languages/src/typescript/injections.scm | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)

Detailed changes

crates/languages/src/tsx/injections.scm 🔗

@@ -1,4 +1,5 @@
-((comment) @content
+(((comment) @_jsdoc_comment
+  (#match? @_jsdoc_comment "(?s)^/[*][*][^*].*[*]/$")) @content
   (#set! "language" "jsdoc"))
 
 ((regex) @content