2

私の目的は、Eclipse QuickFix コンポーネントを拡張し、構文エラーを解決するプロセスを自動化することです。基本的に、QuickFix コンポーネントは解決策のリストを提供し、私の仕事は可能な限り最良の修正を選択してバグのあるコードに適用することです。しかし、今のところ、コンソールでマーカーの解像度を印刷するように要求されています。チュートリアルを作成しようとしましたが、今は行き詰まっています。私がワークアウトしようとしたチュートリアルは次のとおり です

<extension point="org.eclipse.ui.ide.markerResolution">
    <markerResolutionGenerator
        markerType="org.eclipse.core.resources.problemmarker"
        class="org.eclipse.escript.quickfix.QuickFixer"/>
</extension>

次に、QuickFixer と QuickFix の 2 つのクラスを作成しました。

package quickfixer;

import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.IMarkerResolutionGenerator;

class QuickFixer implements IMarkerResolutionGenerator {

    public IMarkerResolution[] getResolutions(IMarker arg0) {
    try {
            Object problem = arg0.getAttribute("Whatsup");
            return new IMarkerResolution[] {
            new QuickFix("Fix #1 for "+problem),
            new QuickFix("Fix #2 for "+problem),
            };
        } catch(CoreException e) {
            return new IMarkerResolution[0];
        }
    }
}

次に、クラス QuickFix:

package quickfixer;

import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IMarkerResolution;

public class QuickFix implements IMarkerResolution {

       String label;
       QuickFix(String label) {
          this.label = label;
       }
       public String getLabel() {
          return label;
       }

    public void run(IMarker arg0) {
        MessageDialog.openInformation(null, "QuickFix Demo",
                     "This quick-fix is not yet implemented");
        System.out.println("Label: " + label);              
    }
}

発生したすべてのエラーを修正してから、プラグインを実行しました。コンソールにラベルを印刷できませんでした。何か提案はありますか???...

4

1 に答える 1

2

使用するSystem.outのは良い考えではありません。理由については、関連するFAQを確認してください

プラグインで標準出力または標準エラーを使用しないようにする必要があります

適切なロギング(またはデバッガー)を使用します。

于 2012-11-12T11:02:41.377 に答える