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

问题描述:

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

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

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

+0

谢谢,请参阅我的编辑,我会继续调查 – CJ1 2014-12-05 16:28:52