分区扫描程序在自定义文本编辑器中为eclipse检测到错误的分区

时间:2011-04-18 07:12:34

标签: eclipse eclipse-plugin

我有一个PartitionScanner,它在Eclipse的自定义文本编辑器插件中扩展了RuleBasedPartitionScanner。我遇到分区扫描程序检测较大字符串中的字符序列的问题,导致文档被错误地分区。例如,在m分区扫描程序的构造函数中,我有以下规则设置:

 public MyPartitionScanner() {
   ...
   rules.add(new MultiLineRule("SET", "ENDSET", mytoken));
   ...
 }

但是,如果我碰巧使用包含字符序列“SET”的令牌,则分区扫描程序似乎会继续搜索endSequence(“ENDSET”)并将文档的其余部分设置为单个分区设置为“即为MyToken“。

 var myRESULTSET34 = ...

有没有办法让分区扫描程序忽略上面标记中的单词“SET”?并且只识别整个单词“SET”?

谢谢。

1 个答案:

答案 0 :(得分:3)

按原样使用MultilineRule,您将无法区分。但是你可以创建自己的子类来覆盖sequenceDetected并在super impl返回true时进行回顾/预测,以确保它在EOF /空格之前/后面。如果没有,则将字符推回扫描仪并返回false。