[英]Is it possible to call quickfix solutions(eclipse) for specific(error/s)?
我有一个程序可以扫描Java文件中的错误。 我从Eclipse调用编译器,并在Java文件上运行扫描,并获取行号,开始位置和结束位置作为输出。 我已经编写了一个程序来从文件中提取错误。
我想做的是可以访问eclipse中的quickfix组件,拥有针对该问题的可能修复程序的列表,并将该列表打印到控制台。
以下是我如何调用编译器并在控制台上打印了详细信息的程序的一部分:
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 quickfix解决方案?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.