无法扩展 CDT CEditor:"The hierarchy of the type '' is inconsistent"

Cannot extend CDT CEditor: "The hierarchy of the type '' is inconsistent"

当我试图写一个扩展的 class 时,我收到错误消息:

The hierarchy of the type 'MYEditor' is inconsistent.

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

public class MYEditor extends CEditor {

}

This answer 说:

These errors happened because some interface/class in the hierarchy cannot be resolved.

这表明 eclipse 在层次结构中找不到 class。但是当我在 plugin.xml 中使用 class 时,它起作用了。我是这样使用它的:

<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 继承的 class。

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

我还了解到 jar 文件需要放在 plugin.xml 的类路径部分。但是 "Add" 和 "New" 按钮不提供选择外部 jar 文件的方法。我可以手动将该 jar 文件从“~/.p2/pool/plugins”复制到我的项目 lib 文件夹中,但这没有帮助。

插件通过将其他插件包含在其依赖项列表中来引用其他插件中的代码。这是插件 MANIFEST.MF 中的 Require-Bundle 条目。

在 MANIFEST.MF/plugin.xml/build.properties 编辑器中,您可以在 'Dependencies' 页面的 'Required Plug-ins' 部分设置依赖项。

不要复制插件 jar,不要将插件 jar 放在 Java 构建路径中。

但请注意,扩展 internal 类 是反对 Eclipse API Rules of Engagement 的。内部 类 可能会在没有警告的情况下更改,并且在旧版本中可能有所不同。

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