在Sublime Text 3中评论出JSX?

时间:2017-11-21 02:51:19

标签: reactjs sublimetext3 jsx

几个月来,由于JSX缺乏评论(命令+ /),我感到很沮丧。这可能吗?

4 个答案:

答案 0 :(得分:2)

这可以通过CTRL + Shift + /

完成

答案 1 :(得分:0)

虽然我建议在Sublime Text 3中使用babel-sublime进行语法突出显示,但正如您所看到的here,JSX注释存在许多问题。但是,引用@zertosh

可以实现
  

不幸的是,有一些问题使得这个问题无法解决。没有JSX评论这样的东西。你可以使用带有JS注释的JSX表达式(花括号) - 但是为了方便起见,这是babel-sublime伪造它。正如你所注意到的那样,当你试图取消注释时,那些伪造品会咬你。那里有一种含糊不清的地方。由于花括号不是注释的一部分,Sublime将它们抛在后面。

     

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

     

JSX syntax highlighting

     

您可以使用此补丁自行尝试:

    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:
.....

答案 2 :(得分:0)

不幸的是,在混合使用JS / JSX的代码中进行评论并不是那么直截了当,我设法将其添加到https://github.com/borela/naomi但是它需要许多变通办法,元范围和plugin

答案 3 :(得分:0)

只有一种快捷方式没有简便的方法,而只有两种快捷方式

您选择要注释的HTML代码 然后您输入字符{,那么升华文字将围绕所有选定区域, 然后按ctrl + shift + 7进行块代码处理,单独的注释对此不起作用,不过,您仍然可以在一行中使用博克注释

用例

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

您可以使用它,它适用于JSX上的任何HTML块