Eclipse CDT 용 플러그인을 개발 중이며 함수의 호출 계층 구조를 생성하려고합니다.Eclipse CDT에서 호출 계층 구하기
모든 파일의 구문 트리를 직접 트래버스하지 않고도 가능합니까?
Eclipse CDT 용 플러그인을 개발 중이며 함수의 호출 계층 구조를 생성하려고합니다.Eclipse CDT에서 호출 계층 구하기
모든 파일의 구문 트리를 직접 트래버스하지 않고도 가능합니까?
CallHierarchy hierarchy = new CallHierarchy();
IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
hierarchy.setSearchScope(searchScope);
ArrayList<MethodCall> methodCalls = new ArrayList<MethodCall>();
MethodWrapper[] callerWrapper = hierarchy.getCallerRoots(methods);
ArrayList<MethodWrapper> callsWrapper = new ArrayList<MethodWrapper>();
for (int i = 0; i < callerWrapper.length; i++) {
callsWrapper.addAll(Arrays.asList(callerWrapper[i]
.getCalls(new NullProgressMonitor())));
}
for (int i = 0; i < callsWrapper.size(); i++)
methodCalls.add(callsWrapper.get(i).getMethodCall());
// Now you will get method calls in methodCalls list.
IMember member = methodCalls.get(0).getMember();// you will get one of
// caller method in
// member by this method
여기에 통화 계층 구조보기를 채우는 데 사용되는 CDT의 코드에 대한 링크입니다 : http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/tree/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHQueries.java
꽤 복잡 보이는, 그리고 (그 아니 공개 API를 의미)의 모든 내부. 재미있게 보내십시오.
그것은 Eclipse JDT의 솔루션입니다. C 프로젝트의 플러그인에서 작업 중이므로 Eclipse CDT에서 수행해야합니다. Eclipse CDT에서 이와 동등한 "CallHierarchy"클래스를 찾을 수 없습니다. – cipher