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



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

请注意,项目版本也是在项目方面指定的。

您可以添加一个 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 帮助中的更多信息。

最新更新