0

メニューバーのメニューをクリックすると、すべてのプロジェクトコンテンツがスキャンされ、指定された関数 (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();
    }

私は正しい方向に進んでいますか?それとも何か変更が必要ですか..

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 に答える