eclipse开发中自定义了几种xml格式的文件,但是文件的后缀名不是“.xml”是自定义的“.eventdesc”之类的。
首先尝试直接在文件上右键【open with】->【XML Editor】,文件打开后在xml编辑器的Design页中会显示“The document is empty.”,并且不能通过Design页进行编辑文件。
第二次,在eclipse菜单栏选择【Window】->【Preferences】,在对话框中选择【General】->【Content Types】配置页,在配置页中选择【Text】->【XML】,然后点击“Add…”按钮,输入“*.eventdesc”,把eventdesc后缀的文件与xml编辑器关联,再重新用【XML Editor】打开eventdesc文件。则可以成功打开并使用。
但是想要别人用插件的时候不需要手动去配置,所以想到两种方法。
第一种:在插件的启动类的start()方法中添加如下代码
// 获取xml编辑器所匹配的类型
IContentType contentType = Platform.getContentTypeManager().getContentType("org.eclipse.core.runtime.xml");
// 获取xml编辑器所匹配的文件后缀名数组,可以通过遍历当前数组,检查需要添加的后缀名是否已经关联
String[] fileSpecs = contentType.getFileSpecs(IContentType.FILE_EXTENSION_SPEC);
contentType.addFileSpec("eventdesc", IContentType.FILE_EXTENSION_SPEC);
第二种:通过在plugin.xml文件中扩展org.eclipse.core.runtime.contentTypes扩展点,配置如下
<!-- 将资文件与xml编辑器相关联 -->
<extension point="org.eclipse.core.runtime.contentTypes">
<content-type id="reportdesc" name="%contentType.name"
base-type="org.eclipse.core.runtime.xml"
priority="high"
default-charset="UTF-8"
file-extensions="eventdesc">
<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber"/>
</content-type>
<!-- 相当于设置文件的默认打开编辑器 -->
<file-association
content-type="org.eclipse.core.runtime.xml"
file-extensions="eventdesc"/>
</extension>