From f987ff05fd2edfccf126258a17288916136cc412 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Ol=C3=B3rtegui?=
<20072509+olrtg@users.noreply.github.com>
Date: Fri, 3 May 2024 05:43:10 -0400
Subject: [PATCH] Improve JSDoc injection in comments (#10800)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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:**
**After:**
Release Notes:
- Changed detection of JSDoc to only do syntax highlighting in block
comments. Improved previous work done in #7826.
---
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(-)
diff --git a/crates/languages/src/javascript/injections.scm b/crates/languages/src/javascript/injections.scm
index 0df1691e7e432f094a77975ac921f5c8c461e2bc..5ac7186f94e3db6067e0fed3fe599d1b49243217 100644
--- a/crates/languages/src/javascript/injections.scm
+++ b/crates/languages/src/javascript/injections.scm
@@ -1,4 +1,5 @@
-((comment) @content
+(((comment) @_jsdoc_comment
+ (#match? @_jsdoc_comment "(?s)^/[*][*][^*].*[*]/$")) @content
(#set! "language" "jsdoc"))
((regex) @content
diff --git a/crates/languages/src/tsx/injections.scm b/crates/languages/src/tsx/injections.scm
index 0df1691e7e432f094a77975ac921f5c8c461e2bc..5ac7186f94e3db6067e0fed3fe599d1b49243217 100644
--- a/crates/languages/src/tsx/injections.scm
+++ b/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
diff --git a/crates/languages/src/typescript/injections.scm b/crates/languages/src/typescript/injections.scm
index c09ff5ba579fcd8378733078beb3c755eeb38de7..6f270c010c06e38955f4f00b7d7666d3b71fe5e8 100644
--- a/crates/languages/src/typescript/injections.scm
+++ b/crates/languages/src/typescript/injections.scm
@@ -1,4 +1,5 @@
-((comment) @content
+(((comment) @_jsdoc_comment
+ (#match? @_jsdoc_comment "(?s)^/[*][*][^*].*[*]/$")) @content
(#set! "language" "jsdoc"))
(((comment) @reference