当文件包含特定文本(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帮助中的更多信息。
谢谢,请参阅我的编辑,我会继续调查 – CJ1 2014-12-05 16:28:52