2013-02-25 35 views
0

我想創建一個eclipse插件,點擊菜單欄中的一個菜單將掃描所有項目內容,並給出有關如何使用指定功能的想法作爲isBoolean或isInteger等..使用eclipse插件閱讀項目的內容

我到處搜索,但沒有得到一個清楚的想法如何做到這一點。我聽說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

我假設你的意思是一個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是異步接收(和流程)的比賽結果的事情。

+0

@eisenberg我正在嘗試android apk的項目也 – user1901079 2013-02-26 11:42:52

+0

這應該工作。嘗試一下並回報。 – 2013-02-26 16:55:09

+0

我是否需要添加一些罐子,因爲我的SearchEngine和iJavaProject沒有被日食所識別。 – user1901079 2013-02-27 11:55:06