繁体   English   中英

为什么我的插入符号跳来跳去?

[英]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.

相关问题
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM