Невозможно расширить CDT CEditor: «Иерархия типа« несовместима » - PullRequest
0 голосов
/ 08 апреля 2019

При попытке написать расширяемый класс я получаю сообщение об ошибке:

Иерархия типа 'MYEditor' противоречива.

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

public class MYEditor extends CEditor {

}

Этот ответ говорит:

Эти ошибки произошли из-за некоторого интерфейса / класса в иерархии не может быть решена.

Это означает, что затмение не может найти класс в иерархии. Но когда я использую класс в моем 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.

Этот ответ не сработал, (удалить и добавить Системную библиотеку JRE).

Я также читал, что файл jar нужно поместить в раздел Classpath файла plugin.xml. Но кнопки «Добавить» и «Новый» не позволяют выбрать внешний файл JAR. Я могу вручную скопировать этот jar-файл из "~ / .p2 / pool / plugins" в папку lib моих проектов, но это не помогло.

1 Ответ

1 голос
/ 08 апреля 2019

Ссылочный код плагинов в других плагинах путем включения других плагинов в список их зависимостей.Это запись Require-Bundle в файле MANIFEST.MF плагина.

В редакторе MANIFEST.MF / plugin.xml / build.properties вы можете установить зависимости в разделе «Необходимые плагины».на странице «Зависимости».

Не копировать банки плагинов, не помещать банки плагинов в путь сборки Java.

Но учтите, что расширение внутренних классов против Правила взаимодействия Eclipse API .Внутренние классы могут изменяться без предупреждения и могут отличаться в более старых выпусках.

Руководство по программированию подключаемого модуля CDT охватывает официальные API-интерфейсы для Eclipse CDT.

...