【问题标题】:Commenting out JSX in Sublime Text 3?在 Sublime Text 3 中注释掉 JSX?
【发布时间】:2018-05-04 09:41:59
【问题描述】:

几个月来,我一直对 JSX 中缺少注释(命令 + /)感到沮丧。这可能吗?

【问题讨论】:

标签: reactjs sublimetext3 jsx


【解决方案1】:

这可以通过CTRL + Shift + / 完成

【讨论】:

  • 这不起作用。我还需要做其他事情吗?
【解决方案2】:

虽然我建议在 Sublime Text 3 中使用 babel-sublime 进行语法高亮显示,但正如您所见 here 有很多 JSX 注释问题。但是可以实现,引用@zertosh

不幸的是,有多种问题导致此问题无法修复。没有 JSX 注释之类的东西。您可以使用 JS cmets 使用 JSX 表达式(大括号)——但这是 babel-sublime 将其伪装成一种方便。当您尝试取消注释时,这种伪造会咬您一口——正如您所注意到的。那里有一个模棱两可的地方。由于花括号不是注释的一部分,Sublime 将它们留在后面。

另一种方法是将 JSX 表达式花括号作为注释的一部分。不过,这可能会导致主题出现问题。它看起来像这样:

你可以自己试试这个补丁:

    diff --git a/JavaScript (Babel).sublime-syntax b/JavaScript (Babel).sublime-syntax
    index ec9403e..dffd90e 100644
    --- a/JavaScript (Babel).sublime-syntax 
    +++ b/JavaScript (Babel).sublime-syntax 
    @@ -1185,6 +1185,13 @@ contexts:
           scope: invalid.illegal.bad-ampersand.jsx

       jsx-evaluated-code:
    +    - match: \{/\*
    +      scope: punctuation.definition.comment.begin.js
    +      push:
    +        - meta_scope: comment.block.js
    +        - match: \*/\}
    +          scope: punctuation.definition.comment.end.js
    +          pop: true
         - match: \{
           scope: punctuation.section.embedded.begin.jsx
           push:

编辑

要实现补丁,只需在JavaScript (Babel).sublime-syntax 文件的第 1109 行之后编辑,添加下面的行并在它们前面加上加号 (+):

.....
    scope: invalid.illegal.bad-ampersand.jsx

   jsx-evaluated-code:
+    - match: \{/\*
+      scope: punctuation.definition.comment.begin.js
+      push:
+        - meta_scope: comment.block.js
+        - match: \*/\}
+          scope: punctuation.definition.comment.end.js
+          pop: true
     - match: \{
       scope: punctuation.section.embedded.begin.jsx
       push:
.....

【讨论】:

  • 如何应用补丁?
【解决方案3】:

不幸的是,在混合了 JS/JSX 的代码中进行注释并不像应有的那么直接,我设法将其添加到 https://github.com/borela/naomi,但它需要许多解决方法、元范围和 plugin

【讨论】:

    【解决方案4】:

    没有简单的方法可以只用一个快捷方式来做到这一点,但可以在两个快捷方式中完成

    您选择要评论的 HTML 代码 然后你输入字符{,所以崇高的文字将包围所有选定的区域, 然后 ctrl + shift + 7 用于块代码,单个 cmets 不适用于此,但您可以对单行使用 bock 注释

    用例

    //1st step
    <IndividualStep></IndividualStep>
    
    //2nd step
    {<IndividualStep></IndividualStep>}
    
    //3th step
    {/*<IndividualStep></IndividualStep>*/}
    

    你在这里,它适用于 JSX 上的任何 HTML 块

    【讨论】:

      猜你喜欢
      • 2017-02-20
      • 2021-03-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2013-07-18
      • 2021-07-20
      相关资源
      最近更新 更多