使用eclipse插件读取项目的内容

时间:2013-02-25 14:41:42

标签: eclipse-plugin

我想创建一个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();
    }

我正朝着正确的方向前进吗?或者是否需要进行任何更改..

1 个答案:

答案 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在哪里异步接收(并处理)您的匹配结果。