我一直关注这个tutorial来提出一个简单的源代码编辑器。 (我最想要的功能是关键字突出显示。)我不明白的是最后一部分:
class Scanner extends RuleBasedScanner {
public Scanner() {
WordRule rule = new WordRule(new IWordDetector() {
public boolean isWordStart(char c) {
return Character.isJavaIdentifierStart(c);
}
public boolean isWordPart(char c) {
return Character.isJavaIdentifierPart(c);
}
});
Token keyword = new Token(new TextAttribute(Editor.KEYWORD, null, SWT.BOLD));
Token comment = new Token(new TextAttribute(Editor.COMMENT));
Token string = new Token(new TextAttribute(Editor.STRING));
//add tokens for each reserved word
for (int n = 0; n < Parser.KEYWORDS.length; n++) {
rule.addWord(Parser.KEYWORDS[n], keyword);
}
setRules(new IRule[] {
rule,
new SingleLineRule("#", null, comment),
new SingleLineRule("\"", "\"", string, '\\'),
new SingleLineRule("'", "'", string, '\\'),
new WhitespaceRule(new IWhitespaceDetector() {
public boolean isWhitespace(char c) {
return Character.isWhitespace(c);
}
}),
});
}
}
说明如下:
对于我们的小语言中的每个关键字,我们在WordRule中定义一个单词条目。我们将关键字检测器以及用于识别注释,字符串和空格的规则传递给扫描仪。使用这一组简单的规则,扫描程序可以将字节流分段为多个部分,然后使用基础规则为这些部分着色。
请告诉我一些光吗?我不知道我要做什么来设置所需的关键词..