我正在尝试为此自定义语法创建一个缩进规则。这与JavaScript switch语句非常相似,但是我一生都无法解决如何在按回车键时正确地使下一行缩进。
这是应该的样子:
CHOICE {
"Hello!":
name "Hi there."
"Um.. hello?":
name "Er.. hi?"
}
到目前为止,我的language-configuration.json
文件具有以下规则:
...
"indentationRules": {
"increaseIndentPattern": "\":",
// TODO: "decreaseIndentPattern": ""
}
因此它正确地匹配了前一行的结尾双引号和冒号,并缩进了下一行,但是我无法弄清楚如何在按回车键时取消缩进下一行。这是目前的操作:
CHOICE {
"Hello!":
name "Hi there."
"Um.. hello?":
name "Er.. hi?"
}
我能想到的最接近的方法是使用decreaseIndentPattern
来检测何时打开双引号,但是,这也会影响前几行,因此实际上不起作用。
我的另一个想法是:\"\n\s*\"
将检查前一行以双引号结尾(而不是冒号),并且当前行以引号开头,因此不缩进当前行,但这并没有不行。
我也看到了这些选项,但是不确定是否可以应用它们:bracketIndentNextLinePattern
,disableIndentNextLinePattern
。
此外,我的起始规则最初是这样的:\".*\"\:
但是由于某种原因,它导致一行未以双引号结尾的行缩进吗?
在尝试修复了几个小时之后,我的系绳已经到尽头,因此希望有人可以指出正确的方向。谢谢。