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:** Screenshot 2024-04-20 at 5 51 04 AM **After:** Screenshot 2024-04-20 at 5 52 05 AM 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