2013-02-25 7 views
0

Я хочу создать плагин eclipse, который при щелчке по меню в строке меню сканирует все содержимое проекта и дает мне представление об использовании указанной функции, если таковая имеется как isBoolean или isInteger и т. д.Прочитайте содержимое проекта с помощью плагина eclipse

Я искал всюду, но не получал четкого представления о том, как это сделать. Я слышал об IResource и API Iproject, но нашел какую-либо реализацию этого. Не могли бы вы помочь мне получить право направление.

Я попытался положить это в моем действии ... , но получил «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. Вы должны взглянуть на API org.eclipse.jdt.core.search.SearchEngine.

Вам нужно сделать что-то вроде этого:

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

+0

Это должно работать. Попробуйте и отчитайтесь. –

+0

Мне нужно добавить несколько банок, так как мой SearchEngine и iJavaProject не идентифицируются с помощью eclipse .. – user1901079

Смежные вопросы