WEB开发网
开发学院软件开发Java 构建基于 CDT 的编辑器,第 5 部分: 将 PDOM 用于... 阅读

构建基于 CDT 的编辑器,第 5 部分: 将 PDOM 用于代码完成

 2009-12-19 00:00:00 来源:WEB开发网   
核心提示: 对于 TemplateEngine 来说,创建 CTemplateProposal 很简单,构建基于 CDT 的编辑器,第 5 部分: 将 PDOM 用于代码完成(5),这是由于它并不关心补全节点或代码的 AST,相反,我要探讨补全贡献器的目标:CCompletionProposal,它不仅包含

对于 TemplateEngine 来说,创建 CTemplateProposal 很简单,这是由于它并不关心补全节点或代码的 AST。相反,它只把特定的关键字和模板建议匹配起来。可以通过 Window > Preferences ... > C/C++ > Editor > Templates 来配置 CDT 模板。或者,如果想添加您自己的配置,那么更改 org.eclipse.cdt.ui 插件的模板文件夹中的 default-templates.xml 文件,或者为 org.eclipse.ui.editors.templates 点添加一个扩展。

PDOMCompletionContributor 是 DOMCompletionContributor 的一个子类,这两个类功能类似。所不同的是:PDOMCompletionContributor 通过在第 4 部分中描述过的 PDOM 数据库中进行搜索,为补全节点查找 IBinding。即,它创建一个 IPDOMVisitor 并访问其中的每个 PDOMBinding。如果绑定名以该前缀开头,它会创建一个如 DOMCompletionContributor 那样的建议。

注意: 在写作本文时,PDOMCompletionContributor 还不能正确工作。但这会在不远的将来改变。

KeywordCompletionContributor 是 5 种贡献器中最简单的一种,它补全已经开始的关键字。具体地说,它创建两个数组:ckeywords 和 cppkeywords,这两个数组的 String 是从 org.eclipse.cdt.core.parser 的 Keywords 类中获得的。如果这两个数组中的任何元素以该前缀开头,贡献器会创建一个相应的 CCompletionProposal。

我将省略 HelpCompletionContributor,因为它需要解释 CDT 的帮助系统如何运行。相反,我要探讨补全贡献器的目标:CCompletionProposal。它不仅包含补全 String。它还存储了该 String 的样式、文档中 String 应存放的位置以及应与该建议关联在一起的 Image。

上一页  1 2 3 4 5 6 7  下一页

Tags:构建 基于 CDT

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