现在的位置: 首页 > 综合 > 正文

构建基于 CDT 的编辑器,第 2 部分: 在 CDT 中显示文本

2013年05月17日 ⁄ 综合 ⁄ 共 810字 ⁄ 字号 评论关闭

 本文是 “构建基于 CDT 的编辑器” 系列中的第 2 部分,介绍了 Eclipse C/C++ 开发工具(CDT)中的文本显示功能。文本显示是 CDT 的一个重要优势。清晰明了且颜色多样的显示使得阅读及在代码间导航变得简单。理解其运行机制不论对于您理解 CDT 代码还是构建自己的功能完整的源码编辑器都是至关重要的。另外,实现 CDT 文本显示的机制同样适用于另一个更为重要的功能:自动解析。
CDT 文本显示简介

对于键入的每一个字符,CDT 编辑器都会执行繁多的任务。它查找对文档分区的改变并激活进一步分割文本的规则。如果该字符完成了一个函数,编辑器允许函数折叠以最小化文本空间。如果该字符完成了一个单词,编辑器决定是否将该词添加到索引中。另外,编辑器还确定该字符是否适合于可接受的 C/C++ 文档结构。如果适合,编辑器更新其内部文档对象模型(Document Object Model, DOM)。如果不适合,编辑器通过注释来提供错误报告。

涵盖 CDT 事件处理的所有方面已超出了本文的范围,所以我们将只关注于语法样式化。我们将解释该编辑器如何基于源代码的结构对文本颜色及字体样式进行改变。这不仅包含了该编辑器如何对键入做出反应,还包含了在第 3 部分讨论 CDT 解析中也要用到的对象和过程。

为了在这里提供相同的文本显示,我已经更新了 第 1 部分 中的 Bare Bones C/C++ 开发工具(BBCDT)。新类包含在 org.bbcdt.dworks.internal.ui.text 和 org.bbcdt.dworks.core.parser 包中。如果在 BBCDT 源文件中键入有效的代码,将看到在完整的 CDT 中常见的语法样式(见图 1)。参见 下载,以重新检索该代码。

。。。。。。

                                                                                             点击此处查看全文

抱歉!评论已关闭.