方括号上的升华文本识别(Javascript)

方括号上的升华文本识别(Javascript),javascript,regex,sublimetext3,Javascript,Regex,Sublimetext3,所以我使用Sublime text 3来编写JS,我注意到了一个小但非常恼人的bug(?) 我有这个密码 var x = [ "a", "b", "c" ] 变量x=[ “a”, “b”, “c” ] 并将自动缩进升华为: 变量x=[ “a”, “b”, “c” ] 这让我很烦恼(不是双关语),因为我有大的数组声明和嵌套数组,我不能折叠它们或清楚地查看层次结构 所以我去四处窥探崇高的语法词典。(将十六进制转换为ASCII字符)并发现: 我想修改正则表达式可以改变缩进

所以我使用Sublime text 3来编写JS,我注意到了一个小但非常恼人的bug(?)

我有这个密码

var x = [ "a", "b", "c" ] 变量x=[ “a”, “b”, “c” ] 并将自动缩进升华为:

变量x=[
“a”,
“b”,
“c”
]

这让我很烦恼(不是双关语),因为我有大的数组声明和嵌套数组,我不能折叠它们或清楚地查看层次结构

所以我去四处窥探崇高的语法词典。(将十六进制转换为ASCII字符)并发现:

我想修改正则表达式可以改变缩进规则。但是我不擅长正则表达式,有什么帮助吗?

正如您所看到的,可以使用找到

当前,如果规则后面没有字符串或结束符,则规则缩进到
{
,并且它们在行首取消缩进到
}
(可选地在结束块注释之前)。您可以将它们更改为在
[
上也缩进,如果后面没有结束的方括号,则不缩进
}
]
-以下是一些与原始模式一样粗糙但功能相同的正则表达式模式:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    <key>name</key>
    <string>JavaScript Indent</string>
    <key>scope</key>
    <string>source.js</string>
    <key>settings</key>
    <dict>
        <key>decreaseIndentPattern</key>
        <string>^(.*\*/)?\s*[}\]].*$</string>
        <key>increaseIndentPattern</key>
        <string>^.*[{\[][^}"'\]]*$</string>

        <key>bracketIndentNextLinePattern</key>
        <string>(?x)
        ^ \s* \b(if|while|else)\b [^;]* $
        | ^ \s* \b(for)\b .* $
        </string>
    </dict>
</dict>
</plist>

名称
JavaScript缩进
范围
source.js
设置
递减模式
^(.*\*/)?\s*[}\]*$
递增缩进模式
^.*[{\[][^}"'\]]*$
括号缩进下一行模式
(?x)
^\s*\b(如果| while | else)\b[^;]*$
|^\s*\b(用于)\b.*$
如您所见,可以使用找到

当前,如果规则后面没有字符串或结束符,则规则缩进到
{
,并且它们在行首取消缩进到
}
(可选前面有结束块注释)。您可以将它们更改为也缩进到
[
如果后面没有一个结束的方括号,并且不涉及
}
]
-这里有一些正则表达式模式,尽管功能与原始模式一样粗糙:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    <key>name</key>
    <string>JavaScript Indent</string>
    <key>scope</key>
    <string>source.js</string>
    <key>settings</key>
    <dict>
        <key>decreaseIndentPattern</key>
        <string>^(.*\*/)?\s*[}\]].*$</string>
        <key>increaseIndentPattern</key>
        <string>^.*[{\[][^}"'\]]*$</string>

        <key>bracketIndentNextLinePattern</key>
        <string>(?x)
        ^ \s* \b(if|while|else)\b [^;]* $
        | ^ \s* \b(for)\b .* $
        </string>
    </dict>
</dict>
</plist>

名称
JavaScript缩进
范围
source.js
设置
递减模式
^(.*\*/)?\s*[}\]*$
递增缩进模式
^.*[{\[][^}"'\]]*$
括号缩进下一行模式
(?x)
^\s*\b(如果| while | else)\b[^;]*$
|^\s*\b(用于)\b.*$

谢谢!!解决它:谢谢!!解决它:D