扩展NetBeans IDE 6.0中的C/C++编辑器以提供标记实例的高亮
<folder name="x- c"> <file name="org-netbeans-modules- markoccurrences-MarkOccurrencesHighlightsLayerFactory.instance" /> </folder> </folder> </folder> </filesystem> 现在我们已经准备好第一次 运行我们的高亮显示器了。 生成项目。 项目成功生成后,运行它。 打开我们在前一节中创建的 Args 项目。 在编辑器中打开 args.c 文件, 并单击文件中的任一位置。高亮显示看起来就会像下面的例子一样: 太棒 了。我们的高亮显示工作了。现在我们来教它变得更有用。 从 C/C++ 语言模型收 集信息 在 MarkOccurrencesHighlighter.java 类中,删除我们粗略实现的 caretUpdate() ,并添加以下代码: 在 caretUpdate() 方法中,我们使用 CsmReferenceResolver 来查找光标下对语 言实体的引用。如果存在有效的实体,我们就向 CsmReferenceRepository 询问文件中所 有相同实体的出现位置并存储它们的偏移量。getCsmFile() 方法是一段衔接代码,用来 确保我们不保留任何语言模型数据。 按下 Ctrl-Shift-I 以修复导入(或者右键 单击,然后选择“修复导入”)。 生成并运行项目。 如果把鼠 标放到 main() 的 argc 参数上,您就将看到如下的高亮显示: 单击 文件的不同位置以查看标记实例是怎样工作的。您也许想尝试更复杂的项目中以查看它怎 样与类、宏等等协同工作。 提高性能 对静态文本来说,我们当前的代码足够好 了,但将在编辑文件的过程中产生严重的延迟。出现延迟的原因是我们每按下一个键,就 立即开始搜索。要解决这个问题,我们将推迟任务以分析代码,如果鼠标位置在任务开始 前改变了,我们就取消并重新计划任务。 在 MarkOccurrencesHighlighter.java 类中,把先前的 caretUpdate() 实现更改为以下代码:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |