codemmirror中的换行符
newline characters in CodeMirror
本文关键字:换行符 codemmirror 更新时间:2023-09-26
我正在为CodeMirror编写一个上下文无关的解析器,它一次解析一个字符,并根据所采取的状态转换输出样式。代码使用换行字符'n来触发状态转换,但是CodeMirror似乎从输入文本中删除了这些字符(console.log (char === ''n')总是返回false)
是否有办法配置CodeMirror给我'n作为输入?文档似乎没有提到这个问题。
我的状态对象的格式如下
{
state1: {
active: true,
edges: {
''n': 'state2'
}
},
state2: {
active: false,
edges: {
'#': 'state1'
}
}
}
如果需要任何额外的信息或澄清,请告诉我
让console.log (char === ''n')
总是返回false
并不一定意味着CodeMirror去掉换行符-文本将按原样传递,即'n
将作为两个字符传递- '
和n
。
尝试在你的模式中使用token
方法来检测流中的'n
:
var newLine = '''n';
token : function(stream) {
var next = stream.next();
var tokenName = null;
if ('''' === next) {
var match = stream.match(new RegExp(newLine.charAt(1)));
match && (tokenName = 'some-style' || null);
}
return tokenName;
}
您还可以将该方法推广到任何序列,而不仅仅是'n
:
var sequence = 'some-sequence';
token : function(stream) {
var next = stream.next();
var tokenName = null;
var ch = sequence.charAt(0);
// search for the first letter
if (next === ch) {
// try to match the rest of the sequence
var match = stream.match(new RegExp(sequence.substring(1)));
match && (tokenName = 'some-style' || null);
}
return tokenName;
}
这还没有经过测试,但我认为已经足够了。请让我知道你的情况。
相关文章:
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 咖啡脚本意外换行符
- 在文本区域中保留换行符.value
- 捕捉文本中的换行符
- JavaScript字符串中的换行符也保存为.txt
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- 将换行符写入<span>元素
- codemmirror中的换行符
- codemmirror能显示下拉换行符吗?