2014-02-15 16 views
1

我是一个尝试学习插件开发的新手程序员。我想升级示例XML编辑器,以便在出现在XML文件中时突出显示“cat”,“dog”,“hamster”,“rabbit”和“bird”等单词(仅用于学习目的)。任何人都可以给我一些实施提示或建议吗?我无言以对...(但是我也在对此进行研究,我不是懒惰的,你有我的话)。提前致谢。如何在文本编辑器中实现一些基本的关键字高亮显示?

+0

示例XML编辑器将文档拆分为“注释”,“标签”和默认文本。您想要检测哪些分区中的单词? –

回答

1

您可以通过修改示例XML编辑器来检测XML的纯文本部分中的单词,如下所示。

我们可以使用提供的WordRule类来检测单词。需要XMLScanner类扫描纯文本进行更新,以包含单词规则:

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); 
    } 
} 

这仅仅是接受字母词。

+0

谢谢,先生。真的帮助我是非常好的。这么晚才回复很抱歉。 –

相关问题