在项目浏览器中选择文件时,如何打开编辑器?

时间:2009-09-16 10:36:47

标签: eclipse plugins

当我在项目资源管理器中选择一个文件时,它应该允许我打开我的编辑器而不是它显示文本编辑器。我们如何在eclipse插件开发中以编程方式处理它?<​​/ p>

问候 马堂

4 个答案:

答案 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内容类型。下一步是实现内容描述符,该内容描述符查看文件并确定它是否属于您的类型。您可以使用两个界面来完成工作:IContentDescriberITextContentDescriber。必须在内容类型中指定实现描述符的路径,因为它显示在代码段中。

然后您的编辑器可以被声明为将处理您的内容类型的编辑器。

<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>

重要的事情:

  • 已经在eclipse中打开过的文件可能会“记住”他们上次打开哪个编辑器,这个将被选中,
  • 您的描述符可能会被大量使用,因此您在实施时应考虑性能问题

主题更多内容: ECLIPSE: Contributing content types

答案 2 :(得分:0)

任何为工作台提供编辑器的插件都可以将编辑器在其plugin.xml中理解的扩展名关联起来。

  

extensions属性描述了编辑器理解的文件类型。 (如果需要更具体,也可以指定文件名。)

我相信当您点击扩展程序的文件时,这足以让您的编辑器打开。 (至少在你第一次打开文件时首选。也就是说eclipse会更喜欢那个会话的那个文件的最后一个编辑器)。

More info.

答案 3 :(得分:0)

首选使用文件扩展名方法,因为这很容易。但是,如果你不能这样做,那么我所知道的唯一选择是在Common Navigator配置中提供一个动作提供者。

您需要创建CommonActionProvider的子类,并且在fillContextMenu()方法中,您可以查看资源,然后决定拥有自己的Open操作(针对您的编辑器)或添加标准的Open操作。