【问题标题】:Opening custom editor when a file contains an specific text (Eclipse RCP)当文件包含特定文本时打开自定义编辑器 (Eclipse RCP)
【发布时间】:2014-12-05 15:31:19
【问题描述】:
我正在为一个简单的项目创建一些编辑器,到目前为止一切都很好,除了目前,我的编辑器绑定到特定的文件扩展名,例如,一个编辑器打开 xml 文件,另一个编辑器打开 .properties文件,现在这很好,但我需要做的是在打开的文件包含特定字符串时启动编辑器。我实际上是在项目版本为“3.4”时尝试启动我的编辑器,因此,当文件包含以下内容时:version="3.4",它应该启动我的编辑器,有没有办法做到这一点,或者有没有更好的方法?
请注意,项目版本也在项目方面中指定。
【问题讨论】:
标签:
java
editor
eclipse-rcp
【解决方案1】:
您可以添加一个describer 元素作为content-type 的子元素,它定义了一个要调用的类,该类可以检查文件是否对该内容类型有效。
<content-type id="customType"
base-type="org.eclipse.jst.jsf.facesconfig.facesConfigFile"
file-extensions="xml">
<describer class="package.MyDescriber"/>
</content-type>
该类必须实现IContentDescriber(或ITextContentDescriber)。
方法:
public int describe(InputStream contents, IContentDescription description)
被调用来检查内容。正常返回VALID,否则返回INVALID。
如果需要,您还可以支持文件的其他属性(例如确定字符编码)。
有关扩展点的 Eclipse 帮助中的更多信息。