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

基于 JFace Text Framework 构建全功能代码编辑器: 第 4 部分:Content Assistant

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 我们遍历语法树得到了所有的变量,你可以看到整个实现代码在 ANTLR 以及一些工具类的帮助下显得非常简洁,基于 JFace Text Framework 构建全功能代码编辑器: 第 4 部分:Content Assistant(4),注意我们为每个变量创建了一个 CompletionPropos

我们遍历语法树得到了所有的变量,你可以看到整个实现代码在 ANTLR 以及一些工具类的帮助下显得非常简洁。注意我们为每个变量创建了一个 CompletionProposal,它的构造函数参数非常多,最后一个就是 Additional Info,我这里只是填了一些无用的信息作为演示之用。其它的参数涉及自动完成需要的所有信息,比如插入的字符串,在哪里插入,图标等等。

配置

又到了将我们的实现和 JTF 连接起来的时间,还是修改 ExprConfiguration, 要覆盖的方法变成了 getContentAssistant:

清单 4. 让 JTF 知道我们的内容提示实现

public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) 
{ 
   ContentAssistant assistant = new ContentAssistant(); 
   assistant.setInformationControlCreator(new IInformationControlCreator() { 
    public IInformationControl createInformationControl(Shell parent) 
    { 
    DefaultInformationControl control = new DefaultInformationControl(parent); 
    return control; 
    } 
   }); 
 
   // add assist processor 
   IContentAssistProcessor processor = new ExprContentAssistProcessor(); 
   assistant.setContentAssistProcessor(processor, IDocument.DEFAULT_CONTENT_TYPE); 
    
   return assistant; 
} 

注意我们第一步实现的只是一个 Processor,还不是真正的内容提示管理器,幸运的是 JTF 为我们提供了 ContentAssistant,我们只要新建一个就可以了。第二行看上去有些不解,稍后我会解释。请注意最后一段,大家可以发现内容提示也是和文本类型绑定到一起的。

上一页  1 2 3 4 5  下一页

Tags:基于 JFace Text

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