当文件包含特定文本时打开自定义编辑器(Eclipse RCP)

时间:2014-12-05 15:31:19

标签: java editor eclipse-rcp

我为一个简单的项目创建了一些编辑器,到目前为止一切都很好,除了目前我的编辑器绑定了一个特定的文件扩展名,例如,一个编辑器打开xml文件,其他编辑器打开.properties文件,现在还可以,但我需要做的是在打开的文件包含特定字符串时启动编辑器。当项目版本为" 3.4"时,我实际上尝试启动我的编辑器,所以,当文件包含这样的内容:version="3.4"时,它应该启动我的编辑器,是否有一种方法,或者有更好的方法吗?

请注意,项目版本也在项目构面中指定。

1 个答案:

答案 0 :(得分: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帮助中的更多信息。