Java ファイルのエラーをスキャンするプログラムがあります。Eclipse からコンパイラーを呼び出し、Java ファイルをスキャンして、行番号、開始位置、および終了位置を出力として取得します。ファイルからエラーを抽出するプログラムを作成しました。
私がやりたいことは、Eclipse でクイックフィックス コンポーネントにアクセスし、問題の可能な修正のリストを取得して、そのリストをコンソールに出力することです。
以下は、コンパイラを呼び出して詳細をコンソールに出力したプログラムの一部です。
Iterable fileObjects = fileManager.getJavaFileObjectsFromStrings(
Arrays.asList(fileToCompile));
CompilationTask task = compiler.getTask(null, fileManager, listener, null,
null, fileObjects);
Boolean result = task.call();
if(result == true) {
System.out.println("Compilation has succeeded");
}
myerrors = listener.getlistofErrors();
for (CaptureErrors e : myerrors) {
System.out.println("Code: " + e.getCode());
System.out.println("Kind: " + e.getKind());
System.out.println("Line Number: " + e.getLinenumber());
// System.out.println("Message: "+ e.getMessage(Locale.ENGLISH));
// System.out.println("Source: " + diagnostic.getSource());
System.out.println("End position"+ e.getEndposition());
System.out.println("Position: "+ e.getPosition());
System.out.println("\n");
}
class MyDiagnosticListener implements DiagnosticListener {
List<CaptureErrors> errors = new ArrayList<CaptureErrors>();
public void report(Diagnostic diagnostic) {
CaptureErrors single_error = new CaptureErrors(diagnostic.getCode(),
diagnostic.getKind(), diagnostic.getLineNumber(),
diagnostic.getMessage(Locale.ENGLISH), diagnostic.getPosition(),
diagnostic.getEndPosition());
errors.add(single_error);
}
public List<CaptureErrors> getlistofErrors() {
return errors;
}
}
行番号に移動し、特定の位置でテキスト(エラー)を抽出するプログラムもあります。
見つかった特定のエラーに対して Eclipse クイックフィックス ソリューションを呼び出すにはどうすればよいですか?