无法扩展CDT CEditor:“类型”的层次结构不一致”

时间:2019-04-08 07:46:59

标签: java eclipse-plugin eclipse-cdt

尝试编写扩展类时,出现错误消息:

  

“ MYEditor”类型的层次结构不一致。

import org.eclipse.cdt.internal.ui.editor.CEditor;

public class MYEditor extends CEditor {

}

This answer说:

  

发生这些错误是因为层次结构中的某些接口/类   无法解决。

这表示eclipse在层次结构中找不到类。但是,当我在我的plugin.xml中使用该类时,它就可以工作。我这样使用它:

<editor
    class="org.eclipse.cdt.internal.ui.editor.CEditor"
    contributorClass="org.eclipse.cdt.internal.ui.editor.CEditorActionContributor"
    default="true"
    filenames="*.grasp, *.c"
    icon="icons/small.png"
    id="de.blub.ide.myeditor"
    name="My Editor">
</editor>

这可行,但是缺少我插件所需的一些功能。这就是为什么我要使用从CEditor继承的类。

This answer无效(删除并添加JRE系统库)。

我还读到jar文件需要放在plugin.xml的Classpath部分中。但是“添加”和“新建”按钮没有提供选择外部jar文件的方法。我可以将jar文件从“〜/ .p2 / pool / plugins”手动复制到我的项目lib文件夹中,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

其他插件中的插件参考代码,方法是将其他插件包括在其依赖项列表中。这是插件的MANIFEST.MF中的Require-Bundle条目。

在MANIFEST.MF / plugin.xml / build.properties编辑器中,可以在“依赖关系”页面上的“必需的插件”部分中设置依赖关系。

请勿复制插件jar,请勿将插件jar放入Java构建路径。

但是请注意,扩展内部类违反Eclipse API Rules of Engagement。内部类可能会更改而不会发出警告,并且在旧版本中可能会有所不同。

CDT Plug-in Programmer's Guide涵盖了Eclipse CDT的官方API。