我是一名尝试学习插件开发的新手程序员。我想升级示例XML编辑器,以便在出现在XML文件中时突出显示“cat”,“dog”,“hamster”,“rabbit”和“bird”等词语(它仅用于学习目的) )。任何人都可以给我一些实施技巧或建议吗?我很无能......(但我也在研究这个问题,我不是很懒。你说的还不错。)先谢谢。
答案 0 :(得分:1)
您可以通过修改示例XML编辑器来检测XML的纯文本部分中的单词,如下所示。
我们可以使用提供的WordRule
类来检测单词。扫描纯文本的XMLScanner
类需要更新以包含单词rule:
public XMLScanner(final ColorManager manager)
{
IToken procInstr = new Token(new TextAttribute(manager.getColor(IXMLColorConstants.PROC_INSTR)));
WordRule words = new WordRule(new WordDetector());
words.addWord("cat", procInstr);
words.addWord("dog", procInstr);
// TODO add more words here
IRule [] rules = new IRule [] {
// Add rule for processing instructions
new SingleLineRule("<?", "?>", procInstr),
// Add generic whitespace rule.
new WhitespaceRule(new XMLWhitespaceDetector()),
// Words rules
words
};
setRules(rules);
}
我在这里使用了现有的处理指令令来减少新代码的数量,但你应该定义一种新的颜色并使用新的令牌。
WordRule
构造函数需要IWordDetector
类,我们可以在这里使用一个非常简单的检测器:
class WordDetector implements IWordDetector
{
@Override
public boolean isWordStart(final char c)
{
return Character.isLetter(c);
}
@Override
public boolean isWordPart(final char c)
{
return Character.isLetter(c);
}
}
这只是用文字接受字母。