为 SWT 应用程序配备内容助理:通过上下文敏感的智能内容完成建议,提高最终用户的便利性和生产率
2009-12-14 00:00:00 来源:WEB开发网构造限定符
现在,让我们看看如何从当前文档检索限定符。我们需要实现方法 getQualifier() ,如清单 7 所示。
清单 7. getQualifierprivate String getQualifier(IDocument doc, int documentOffset) {
// Use string buffer to collect characters
StringBuffer buf = new StringBuffer();
while (true) {
try {
// Read character backwards
char c = doc.getChar(--documentOffset);
// This was not the start of a tag
if (c == '>' || Character.isWhitespace(c))
return "";
// Collect character
buf.append(c);
// Start of tag. Return qualifier
if (c == '<')
return buf.reverse().toString();
} catch (BadLocationException e) {
// Document start reached, no tag found
return "";
}
}
}
这是相当简单的。我们从当前文档偏移位置开始,向后读取文档字符。当检测到一个开括号时,我们就找到了一个标签的开头,并将收集到的字符在逆转顺序之后返回。在无法找到标签开头的其他所有情况下,我们返回一个空字符串。在这样的情况下,建议集是不受限制的。
编译自动完成建议
现在让我们编译一个建议集合。清单 8 显示了构成这些建议的相关标签集。如果您愿意,还可以添加更多的标签。
更多精彩
赞助商链接