我的自定义文件具有以下格式,使用显式折叠规则我可以为每个 [] 进行自定义折叠,但是当我折叠它时它只折叠 1 行而不是所有行。 不接受显式折叠扩展。
[Table]
s1=raw
s2=meta
[Table2]
S2=raw
s1=meta
如何使整个 [] 块折叠和展开直到下一个 []
"explicitFolding.rules": {
"*": {
"beginRegex": "^\\[.*\\]",
"endRegex": " "
}
},
以下设置适用于您的文件格式
"explicitFolding.rules": {
"*": {
"separatorRegex": "^\\[.*\\]",
"foldEOF": true
}
}
编辑
我不得不调试扩展以找出为什么 Mark 的建议不起作用。
如果你有
"endRegex": "^\\s*$"
用于查找折叠的正则表达式是 a^
。这将永远被发现。
扩展测试指定的正则表达式 (begin.middle, end) 是否与空字符串匹配。 (可能的无限循环,我通过显式测试在我的扩展中解决了这个问题,如果下一个发现实际上是在
lastIndex
调用之后,在 Mark 提出的问题之后推进 exec()
)
如果你想使用
beginRegex
和 endRegex
你可以使用:
"explicitFolding.rules": {
"*": {
"beginRegex": "^\\[.*\\]",
"endRegex": "^\\s*$",
"bypassProtection": true,
"foldEOF": true
}
}
我建议将此折叠规则添加到设置中的特定 languageID。