WEB开发网
开发学院软件开发Java 基于 JFace Text Framework 构建全功能代码编辑器... 阅读

基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 实现 ITextHover好消息是 JTF 已经提供了一个缺省的实现,叫做 DefaultTextHover,基于 JFace Text Framework 构建全功能代码编辑器: 第 6 部分:Text Hover 和 Annotation Hover(2),只要继承一下就可以了,下面是具体的

实现 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; 
 } 
} 

上一页  1 2 3 4 5  下一页

Tags:基于 JFace Text

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接