Eclipse 플러그인 프로젝트의 일부로, 필자가 수행 한 기능을 구현하기 위해 추가, 삭제 및 메소드 변경 사항을 추적해야합니다.Eclipse 플러그인에서 메소드 내부의 변경 사항을 캡처하는 방법
JavaCore.addElementChangedListener
을 통해 수신기를 등록하고 IJavaElementDelta.getElement()
이 참조 할 때까지 IJavaElementDelta
을 반복적으로 통과함으로써 메서드 추가 및 삭제를 캡처 할 수 있습니다.
예. 내가 얻을 클래스 B
에 방법 a
를 추가
[Working copy] B.java[*]: {CHILDREN | FINE GRAINED | AST AFFECTED}
B[*]: {CHILDREN | FINE GRAINED}
a()[+]: {}]
문제는 이미 기존의 방법을 편집 할 때이 발생하지 않는다는 것입니다 : 나는 그것을 위해 트리거 방법 및 변경 이벤트의 구현을 수정할 때, 델타의 해상도는이 메서드가 포함 된 클래스에서 확장되지 않고 중지됩니다.
예. 내가 클래스 B
의 방법 a
을 수정 내가 얻을 :
[Working copy] B.java[*]: {CONTENT | FINE GRAINED | AST AFFECTED}
이 정보는 구현 그냥 변경에도 불구하고, 방법 a
에 대한 정보가 포함되어 있습니다.은 어떻게 추적 할 수 있습니다 자신의 구현 (건물과 AST 여러 번 저장하지 않고) 변경 방법에 대한 알림을받을 :이 문제는 부분적으로 문제는, https://bugs.eclipse.org/bugs/show_bug.cgi?id=327753
따라서이 오래된 이클립스 버그 리포트에 연결되어있을 수 있습니다?