基于 JFace Text Framework 构建全功能代码编辑器: 第 7 部分:Quick Assistant
2010-03-18 00:00:00 来源:WEB开发网核心提示: 图2. 新的标注类型:未声明的变量IQuickAssistProcessor前面两步是把准备工作做完了,现在才轮到真正的接口上场了,基于 JFace Text Framework 构建全功能代码编辑器: 第 7 部分:Quick Assistant(3),IQuickAssistProcesso
图2. 新的标注类型:未声明的变量
IQuickAssistProcessor
前面两步是把准备工作做完了,现在才轮到真正的接口上场了。IQuickAssistProcessor 的角色和 IContentAssistProcessor 的角色是完全相同的,只是具体方法不同罢了。下面是 IQuickAssistProcessor 的声明:
清单3. IQuickAssistProcessor 接口
public interface IQuickAssistProcessor {
String getErrorMessage();
boolean canFix(Annotation annotation);
boolean canAssist(IQuickAssistInvocationContext invocationContext);
ICompletionProposal[] computeQuickAssistProposals(
IQuickAssistInvocationContext invocationContext);
}
快速帮助比内容提示多了一个上下文相关的接口:IQuickAssistInvocationContext。它可以用来为快速帮助提供一些辅助信息。实际上,内容提示也是需要上下文信息的,但是 JTF 没有另外做一个接口来包装它,如果你要做一个复杂的内容提示功能,往往需要自己来定义一个上下文信息接口。
canFix 方法在内容提示中也没有类似物。这个方法主要是提供给 Marker 系统来使用的,比如下图中所示的右键菜单:
图3. Problem 视图中的右键菜单
更多精彩
赞助商链接