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

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

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 这三个部分都是可以定制的,只不过有的简单有点麻烦一点,基于 JFace Text Framework 构建全功能代码编辑器: 第 4 部分:Content Assistant(2),比如我们看到弹出列表的下面有一行提示“Press ‘Alt+/’ to sho

这三个部分都是可以定制的,只不过有的简单有点麻烦一点。比如我们看到弹出列表的下面有一行提示“Press ‘Alt+/’ to show Template Proposals”,这在标准的弹出列表里面是没有的,JDT 定制了这一部分。

为示例代码添加内容提示支持

我打算为本文的示例代码添加以下的内容提示支持:自动提示已经声明的变量名。比如下面的语句:

清单 1. 示例语句

        a = 3; 
b = 4; 

那么当用户在激活内容提示时,我们将显示出 a 和 b 供它选择,也就是显示之前声明过的变量。所有的声明过的变量可以通过遍历语法树来得到,我们在 TreeHelper 里面有一个 getVariables,它会完成这样的功能,如果你生成的语法树不一样,调整这个方法就可以了。注意输入的时候语法必须是正确的,不然语法解析器识别不出这是一个声明语句,也就得不到变量了。

IContentAssistProcessor

第一步,我们要实现 IContentAssistProcessor 接口,它就是所有 Proposal 的来源。不过这个接口的方法比我们想象的要多一些:

清单 2. IContentAssistProcessor 接口

        public interface IContentAssistProcessor { 
 ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset); 
 IContextInformation[] computeContextInformation(ITextViewer viewer, int offset); 
 char[] getCompletionProposalAutoActivationCharacters(); 
 char[] getContextInformationAutoActivationCharacters(); 
 String getErrorMessage(); 
 IContextInformationValidator getContextInformationValidator(); 
} 

上一页  1 2 3 4 5  下一页

Tags:基于 JFace Text

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