我正在尝试使用 CodeMirror 突出显示某些文本。这个项目中不寻常的事情是我必须突出显示的内容不是预定义的,而是我进行了 Web 服务调用,并且 web 服务的响应为我提供了应该突出显示的内容的索引。这是一个 NLP 项目,网络服务为我提供了特定于上下文的“知识”,这就是我想要强调的。
简而言之,我正在获取带有 start 和 end 属性的 JSON 对象,这些属性表示要突出显示的字符的位置
以下是我所拥有的模式定义,我编辑了“差异”模式
CodeMirror.defineMode("diff", function() {
var i=-1;
return {
token: function(stream) {
i++;
// stream.skipToEnd();
var ch = stream.next();
if ( bufferedResponse != null && bufferedResponse != "" && bufferedResponse.allergies != null ){
$.each( bufferedResponse.allergies, function( key, value )
{
if ( key != null && value != null && value != "" )
{
if(i<value.start && i>value.end){
return "minus";
}
}
});
}
}
};
});
CodeMirror.defineMIME("text/x-diff", "diff");
我的问题是如何获得流的当前相对于字符串开头(不是行)?我的意思是如果流正在读取第 149 个字符,我该如何检索这个数字?“pos”、“start”和“columns”只给我当前行的位置!
这可以使用 CodeMirror 吗?