Структурное сравнение двух AST в Eclipse - PullRequest
2 голосов
/ 07 августа 2009

Я работаю над инкрементным компоновщиком для кода Java в Eclipse. Eclipse предоставляет ResourceDelta, который сообщает мне, какие ресурсы изменились с момента последней сборки. Тем не менее, я хотел бы получить более подробную информацию, например, какие методы или какие определения полей изменились. Кажется, есть функциональность, аналогичная той, что я хочу в представлении «сравнить с -> друг с другом». Однако этот код совершенно не связан с механизмом сборки и кажется несовместимым с ResourceDeltas. Какой будет хороший способ понять, чего я хочу? Лучшее решение, которое я вижу, - сравнить два AST, но я также не смог найти никакой встроенной поддержки для этого.

1 Ответ

2 голосов
/ 17 августа 2009

JavaCore предоставляет эту информацию через интерфейсы IElementChangedListener и IJavaElementDelta. Вот небольшой пример кода, с которого можно начать:

JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.POST_RECONCILE);

Более подробная информация доступна в Управление Java-кодом из Руководства разработчика плагина JDT.

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