0

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

我是否朝着正确的方向前进?或者有什么需要改的吗。。

4

1 回答 1

0

我假设您的意思是一个 Java 项目。你应该看看org.eclipse.jdt.core.search.SearchEngineAPI。

你需要做这样的事情:

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

于 2013-02-25T18:19:36.523 回答