如何在文本编辑器中实现一些突出显示的基本关键字?

时间:2014-02-15 03:47:47

标签: eclipse-plugin syntax-highlighting text-editor

我是一名尝试学习插件开发的新手程序员。我想升级示例XML编辑器,以便在出现在XML文件中时突出显示“cat”,“dog”,“hamster”,“rabbit”和“bird”等词语(它仅用于学习目的) )。任何人都可以给我一些实施技巧或建议吗?我很无能......(但我也在研究这个问题,我不是很懒。你说的还不错。)先谢谢。

1 个答案:

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

这只是用文字接受字母。