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

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

 2009-12-19 00:00:00 来源:WEB开发网   
核心提示:代码完成概述图 1 恰恰展示了我喜爱 CDT 的主要原因之一,使用 C++ 类时,构建基于 CDT 的编辑器,第 5 部分: 将 PDOM 用于代码完成,我不需要记住每一个成员方法和成员变量,只需键入类名和一个点,我解释了这种做法如何实现文本显示和一致,它也创建了编辑器的 ContentAssistant,CDT 就会

代码完成概述

图 1 恰恰展示了我喜爱 CDT 的主要原因之一。使用 C++ 类时,我不需要记住每一个成员方法和成员变量。只需键入类名和一个点,CDT 就会给出一个列表以供选择。单击 Enter,它就会输入我的选择。如果键入了名称或关键字的一部分,按下 Ctrl+Space 键会帮我补全。您可以说代码完成弱化了编码过程,但我更愿意认为它为我节省了宝贵的脑细胞,让我可以做更重要的事,如 Sudoku。


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

确切地说,代码完成是内容辅助 这一大标题下的两项功能之一。第二项功能叫作上下文信息,它就如同编辑过程中出现的提示。这两项功能执行相似的任务:当用户输入特定的字符序列时提供文本信息。CDT 不用上下文信息,因而在本文中我将集中介绍代码完成。

代码完成为用户节省了时间和精力,但添加这项功能却需在开发上做出相当的努力。不仅需要创建建议列表,还需要搜索解析器的抽象语法树(AST)来确定要列出哪个建议。本文详细描述了这两点,并介绍了如何用自己的建议定制 CDT 代码完成。这样做将 CEditor 和 PDOM 解析器绑定到了一起,所以很好地总结了本系列。

代码完成过程包含四个主要步骤:

激活代码完成

查找 ASTCompletionNode

生成代码完成建议

显示代码完成建议

像往常一样,我把代码完成添加到了精简版 C/C++ 开发工具(BBCDT)中。

激活代码完成

首先,介绍编辑器如何得知何时需执行代码完成。CViewer 类执行 CDT 编辑器的事件处理,由于其功能众多,因而其配置绑定在一个单独的对象 CSourceViewerConfiguration 中。在 第 2 部分 中,我解释了这种做法如何实现文本显示和一致。它也创建了编辑器的 ContentAssistant,其主要负责管理代码完成。

1 2 3 4 5 6  下一页

Tags:构建 基于 CDT

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