Я работаю над плагином Eclipse, который позволяет отслеживать. Я внедряю систему уведомлений, которая сообщает пользователю всякий раз, когда отслеживаемый элемент изменяется (удаляется, переименовывается или редактируется), и для этой цели я реализовал IResourceChangeListener, но это не дает мне всю поддержку, которую я хочу для элементов Java.Есть ли способ получить объект IJavaElementDelta из IResourceDelta?
Например, когда я переименовываю Java-метод внутри .java-файла, он сообщает только, какой файл был отредактирован, но я хотел бы получить информацию об этом методе. Я знаю, что это может быть достигнуто при внедрении IElementChangedListener, но есть ли какие-либо пути вокруг него? Действительно ли мне нужно реализовать два прослушивателя (ResourceListener для других файлов и ElementChangedListener только для элементов Java) или я могу каким-то образом получить IJavaElementDelta (обычно полученный из ElementChangedListener) из IResourceDelta? Благодаря!
Я так и думал, но я бы продолжил расследование, если бы не ваш ответ. Большое спасибо! –
Полностью согласен. Попытка сохранить несколько строк реализации второго слушателя потребует повторной реализации почти всех org.eclipse.jdt.internal.core.DeltaProcessor, который получает события изменения ресурса и испускает IJavaElementDeltas в 2kLOC +. –