[英]Why does my caret jump around?
我正在将RSyntaxTextArea与自定义TokenMaker一起使用。 从突出显示按预期运行的意义上来说,TokerMaker似乎运行良好。 例如,在“ class Fibonacci”行中,由于class是保留关键字,因此class高亮显示为蓝色,由于是标识符,Fibonacci是简单黑色。
但是,无论使用鼠标还是键盘,插入符号导航都无法正常工作。 例如:当我使用右箭头移动插入符号时
从“ clas | s斐波那契”到“ class |斐波那契”(其中|表示插入号)
然后改为转到“ Fibon | acci类”
为什么插入符号会这样跳来跳去?
PS:My TokenMaker为此行生成以下对addToken的调用:
addToken(text, 0, 4, TokenTypes.RESERVED_WORD, 0);
addToken(text, 5, 5, TokenTypes.WHITESPACE, 0);
addToken(text, 6, 14, TokenTypes.IDENTIFIER, 0);
addNullToken();
我发现了问题,我对addToken的调用的第四个参数不正确。 计算第四个参数的正确方法如下:
override def getTokenList(text: Segment, initialTokenType: Int, startOffset: Int): Token = {
//some code that defines start, end and tokenType
val documentOffset = start - text.offset + startOffset;
addToken(text, start, end, tokenType, documentOffset);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.