FAQ:What support is there for creating custom text editors?

Eclipse官方FAQ翻译系列

Eclipse中有什么是支持自定义文本编辑器的?

原始链接:http://wiki.eclipse.org/FAQ_What_support_is_there_for_creating_custom_text_editors% 3F

Eclipse为创建象程序语言编辑器和文档编辑器这类文本编辑器提供了丰富的支持。而文本编辑框架被设计为多层,以增加与Eclipse平台的耦合。某些较低级别的组件可以轻易的在Eclipse之外的独立应用中重用,而框架的其他部分只能在一个运行的Eclipse平台中使用。使用这个框架,你可以只做很少的工作就快速的创建功能强大的编辑器。

Eclipse中有大量针对文本编辑的基础结构,以至于指出从哪里开始非常困难,这里仅有一些提供文本处理功能的插件的简短说明。

  • org.eclipse.text.

这个plugin是少有的几个没有依赖于其他插件的插件之一。因为它没有依赖于Eclipse平台,甚至是SWT。这个插件可以轻易的在独立的应用中被使用。这个插件提供了一个操作文本的模型并且没有可视化组件,因此它可以被用于处理或操作文本的程序中。你可以把这个插件想象为java.lang.StringBuffer的增强版本,它支持改变通知事件(event change notification)、分区、查找和替换,还有其他一些文本处理功能。

  • org.eclipse.swt.

SWT在本书的其他部分叙述,但在文本编辑环境中,StyledText类在这里应该被提及。StyledTextSWT中用于显示和编辑文本的用户接口对象。用户所看见一切都呈现在这里:颜色、字体、选中、插入符号(I型光标)等等。你可以添加任何种类的监听器来跟踪用户正在做什么。某些令人着迷的功能如单词包装(word wrapping),双向文本(bi-directional text)被用于很多非拉丁语言环境,同时还支持打印。

  • org.eclipse.jface.text.

这个插件是org.eclipse.text提供的模型和StyledText提供的视图的结合。对应于JFace的思想,这里的意图不是隐藏SWT层,而是用一个丰富的模型和控制器来增强可视化表现。这个plugin是文本框架的核型,而它提供的功能实在太多以至于无法一一列出。这里仅仅展现一小部分:它支持内容辅助(content assist),基于规则的文本扫描(用于语法着色)和分区,一个垂直的标尺(编辑器左边显示line number的部分),incremental reconciling(渐进调解?)、格式化,还有盘旋显示(鼠标放置在方法上,出现提示)。本章的其他FAQ中详细描述这些功能的大部分。

  • org.eclipse.ui.workbench.texteditor.

这个插件将Eclipse平台和文本框架联系在一起。你只能在某个运行中的Workbench中使用这个插件提供的功能(它与Eclipse平台紧密相连)。特别的,这个插件支持文本编辑器出现在workbench区域中,并使用一大堆Action的子类来操作编辑器的内容,并且支持annotation(注意,这里不是Java语言特性中的Annotation,而是“注解”的意思,比如书签,代码折叠等都称为annotation),增量的查找等等。如果你正在设置一个在Eclipse平台中使用的编辑器,你可以继承本插件中的AbstractTextEditor类。这个抽象编辑器包含Eclipse中默认文本编辑器的大部分功能,而不假定编辑的内容存储在哪里,它(被编辑的内容)不一定是在workspace中。对于一个需要文本编辑支持的RCP应用,这个插件非常适合。

  • org.eclipse.ui.editors.

这个插件提供了Eclipse基础平台中主要的功能明确的编辑器(main concrete editor):他们是默认的文本编辑器。当编写你自己的编辑器时,你通常并不需要使用这个插件,因为所有有用的功能已经被抽象到我们已经提到过的其他插件。concrete编辑器专门适用于IFileEditorInput,而IFileEditorInput用于一个本地workspaceIFile对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值