我正在尝试为 codemirror 开发一种简单的模式。此模式将以蓝色和绿色交替为段落着色。段落之间的分隔是空行或仅包含空格的行。
这是一个有效的代码版本,但最大的问题是未检测到空行:
CodeMirror.defineMode("rt", function() {
return {
startState: function() {return {state1: true};},
token: function(stream, state) {
if (stream.match(/\s\s*/)!=null){ # this fails to detect empty lines
state.state1 = !state.state1;
}
stream.skipToEnd();
if (state.state1) { return "status1"; }
return "status2";
}
};
});
如果我将其应用于以下文本:
line 1
line 2 # the next line is just a backspace and is not detected
line 3
line 4 # the next line is a few spaces followed by a backspace, it is detected
line 5
line 6
它以一种颜色从第 1 行到第 4 行着色,以另一种颜色从第 5 行着色到第 6 行,这是预期的。
我正在尝试找到一种方法来更新我的代码,以便它检测到第 2 行和第 3 行之间的空行。有什么方法可以做到这一点?