gpt4 book ai didi

java - 是否可以针对特定(错误)调用快速修复解决方案(eclipse)?

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:16 25 4
gpt4 key购买 nike

我有一个程序可以扫描 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 快速修复解决方案?

最佳答案

是的,这是可能的。确切的细节比 StackOverflow 答案中可以轻松包含的内容要大一些。

Eclipse 通过使用插件进行扩展。一个“Hello World”插件详解here ,在完成最初的学习曲线后,您可以下载其他插件来感受 eclipse 内部的工作原理。

我想您最好检查一下 Eclipse 的当前代码突出显示功能,并阅读这些插件的源代码作为指导,但只有您对插件开发的工作原理有所了解之后。

关于java - 是否可以针对特定(错误)调用快速修复解决方案(eclipse)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14609667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com