当我在项目资源管理器中选择一个文件时,它应该允许我打开我的编辑器而不是它显示文本编辑器。我们如何在eclipse插件开发中以编程方式处理它?</ p>
问候 马堂
答案 0 :(得分:1)
窗口 - 首选项 - 常规 - 编辑器 - 文件关联
他们可以选择打开哪个编辑器,用于不同的文件结尾。
如果您想使用自己实现的编辑器执行此操作,则必须实现编辑器的扩展点
<强> org.Eclipse.ui.editors的强>
字段“ extensions ”定义哪个文件结尾与编辑器相关
答案 1 :(得分:1)
还可以注册您自己的内容类型的文件。它可以被注册为现有内容类型的子类型,即XML。为此,您应该添加org.eclipse.core.contenttype.contentTypes
示例扩展点:
<extension
point="org.eclipse.core.contenttype.contentTypes">
<content-type
base-type="org.eclipse.core.runtime.xml"
default-charset="UTF-8"
describer="com.example.MyContentDescriber"
file-extensions="xml"
id="org.eclipse.core.runtime.xml.exampleContentType"
name="exampleContentType"
priority="normal">
</content-type>
正如您所看到的,新内容类型正在扩展xml内容类型。下一步是实现内容描述符,该内容描述符查看文件并确定它是否属于您的类型。您可以使用两个界面来完成工作:IContentDescriber
或ITextContentDescriber
。必须在内容类型中指定实现描述符的路径,因为它显示在代码段中。
然后您的编辑器可以被声明为将处理您的内容类型的编辑器。
<editor class="com.example.MyEditor"
default="true"
icon="res/icons/dialog.png"
id="[some_id]"
name="Dialog editor">
<contentTypeBinding
contentTypeId="org.eclipse.core.runtime.xml.exampleContentType">
</contentTypeBinding>
</editor>
重要的事情:
答案 2 :(得分:0)
任何为工作台提供编辑器的插件都可以将编辑器在其plugin.xml中理解的扩展名关联起来。
extensions属性描述了编辑器理解的文件类型。 (如果需要更具体,也可以指定文件名。)
我相信当您点击扩展程序的文件时,这足以让您的编辑器打开。 (至少在你第一次打开文件时首选。也就是说eclipse会更喜欢那个会话的那个文件的最后一个编辑器)。
答案 3 :(得分:0)
首选使用文件扩展名方法,因为这很容易。但是,如果你不能这样做,那么我所知道的唯一选择是在Common Navigator配置中提供一个动作提供者。
您需要创建CommonActionProvider的子类,并且在fillContextMenu()方法中,您可以查看资源,然后决定拥有自己的Open操作(针对您的编辑器)或添加标准的Open操作。