基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover
2010-03-18 00:00:00 来源:WEB开发网实现 ITextHover
好消息是 JTF 已经提供了一个缺省的实现,叫做 DefaultTextHover,只要继承一下就可以了。下面是具体的代码:
清单2. ExprTextHover 继承 DefaultTextHover
public class ExprTextHover extends DefaultTextHover {
public ExprTextHover(ISourceViewer sourceViewer) {
super(sourceViewer);
}
@Override
public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
return new Region(offset, 1);
}
@Override
public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
// query super first
String info = super.getHoverInfo(textViewer, hoverRegion);
// if null, use our logic
if(info == null) {
// get document
IDocument doc = textViewer.getDocument();
// get token list
TokenList list = TokenManager.getTokenList(doc);
// get token
Token token = list.getToken(hoverRegion.getOffset());
if(token == null)
return null;
// if token is variable, get variable value
if(token.getType() == IExprTokens.ID) {
// parse
TreeManager.getTree(doc);
return String.valueOf(SharedParser.getVariableValue(token.getText()));
} else
return null;
} else
return info;
}
}
更多精彩
赞助商链接