如何为JavaSource文件中的多个问题编写Eclipse快速修复程序
在重构一些遗留代码的过程中,需要创建我们自己的Eclipse快速修复程序,对代码进行一些小的修改。这(本身)在本文(德语)之后非常简单: http://jaxenter.de/artikel/Eclipse-JDT-um-eigene-Quickfixes-erweitern
快速修复(IQuickFixProcessor
)是通过扩展点org.eclipse.jdt.ui.quickFixProcessors
添加的,该扩展点创建一个IJavaCompletionProposal
来完成工作。IQuickFixProcessor
有一个AST,可以随时对其进行代码更改
我现在面临的问题是,我一次只能对一个问题进行快速修复。如果我选择了多个问题(所有问题都属于同一类型,因此我的自定义快速修复是适用的),我会得到错误“所选问题没有通用的适用快速修复”
我如何创建一个快速修复,可以用于同一类型的多个问题
对于Java源文件,使用Acanda建议的扩展点org.eclipse.ui.ide.markerResolution
似乎很难实现。例如,没有可用的AST,只有一个IMarker
实例。我如何获得一个IMarker
的ASTCompilationUnit
和冒犯的ASTNode
更一般的:JDT中是否有一个API桥来处理IMarker
实例`
# 1 楼答案
要为
IMarker
获取ASTNode
,请执行以下操作: