我想创建一个eclipse插件,点击菜单栏中的菜单将扫描所有项目内容,并让我了解指定函数的使用,如isBoolean或isInteger等。
我到处搜索,但没有清楚地知道如何去做。我听说过IResource和Iproject API,但是找到了它的任何实现。请你帮我找到正确的方向。
我试着把它放在我的行动中...... 但得到了“java.lang.ClassNotFoundException:org.eclipse.jdt.core.search.SearchRequestor”
SearchPattern pattern = SearchPattern.createPattern("isBool",
IJavaSearchConstants.METHOD,
IJavaSearchConstants.REFERENCES,
SearchPattern.R_EXACT_MATCH);
IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
SearchRequestor requestor = new SearchRequestor() {
@Override
public void acceptSearchMatch(SearchMatch searchMatch) throws CoreException {
// TODO Auto-generated method stub
System.out.println( searchMatch.getElement());
}
};
SearchEngine searchEngine = new SearchEngine();
try {
searchEngine.search(
pattern,
new SearchParticipant[]
{SearchEngine.getDefaultSearchParticipant()},
scope, requestor, null);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我正朝着正确的方向前进吗?或者是否需要进行任何更改..
答案 0 :(得分:0)
我假设您的意思是Java项目。您应该查看org.eclipse.jdt.core.search.SearchEngine
API。
你需要做这样的事情:
SearchPattern pattern = SearchPattern.createPattern("isBoolean", IJavaSearchConstants.METHOD, IJavaSearchConstants.REFERENCES, SearchPattern.EXACT_MATCH);
new SearchEngine().search(
SearchEngine.createJavaSearchScope(patter,
new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
new IJavaElement[] { iJavaProject }),
requestor,
new NullProgressMonitor());
requestor
在哪里异步接收(并处理)您的匹配结果。