Можно ли написать плагин для затмения, кроме Java, в Eclipse? - PullRequest
3 голосов
/ 26 июля 2011

Может кто-нибудь помочь мне написать плагин для затмения в C ++?


@ weekens и @celavek спасибо за информацию. Я прохожу через JNI и постараюсь реализовать его.

@ celavek: какого рода мастер / контроль мы должны делать? это опаснее обрабатывать в C ++ и Java-интерфейсе.

Мое требование - добавить собственное свойство на страницах предпочтений в Java, для этого они используют пакет Propertypages. Но как это сделать в C ++?

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

Платформа Eclipse написана на Java, и вся инфраструктура плагинов построена вокруг этого, что в основном означает, что в большинстве случаев вам придется писать свой плагин на Java (существуют другие языковые возможности для работы с JVM, см. комментарии и заметки о Jython ниже). Тем не менее, есть возможность написать некоторые функции вашего плагина на C ++ (или на других языках), а затем соединить интерфейс C ++ с Java, что сделает его доступным в вашем плагине. Для этого вы можете попробовать использовать JNI , MS COM , Mozilla XPCOM , CORBA (вы можете попробовать omniORB ) или Swig . Я работал с XPCOM и Swig на предыдущей работе, чтобы сделать такой интерфейс возможным - у нас был механизм отладчика, написанный на C ++, и мы открывали интерфейс / функциональность для плагинов Eclipse Java через XPCOM. Я уверен, что есть и другие альтернативы, например. Jython - Я использовал его для написания небольших скриптов на Python, а затем выставлял их прямо в Eclipse.

Имейте в виду, что этот вид взаимодействия иногда может быть очень сложным - вам нужно было бы иметь хорошее знание различных технологий и нескольких языков и поддерживать интерфейсы / код в обоих мирах - иногда это боль, но много раз Вы можете достичь очень хороших результатов. Веселитесь.

2 голосов
/ 26 июля 2011

Я думаю, это возможно только с использованием JNI. Итак, вам все равно понадобится Java. Инфраструктура плагинов Eclipse - это чистый Java-фреймворк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...