我的目标是扩展 eclipse QuickFix 组件并自动化解决语法错误的过程。基本上,QuickFix 组件提供了一个解决方案列表,我的任务是选择可能的最佳修复并将其应用于错误代码。但是,现在我被要求打印控制台中标记的分辨率。我试图制定一个教程,但我现在有点卡住了。我尝试锻炼的教程是:http ://www.informit.com/articles/article.aspx?p=370625&seqNum= 21 我首先在我的 plugin.xml 文件中添加了扩展名
<extension point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
markerType="org.eclipse.core.resources.problemmarker"
class="org.eclipse.escript.quickfix.QuickFixer"/>
</extension>
然后我创建了两个类 QuickFixer 和 QuickFix。
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);
}
}
我已经设法纠正了我遇到的所有错误,然后我运行了插件。我无法在控制台中打印出标签。有什么建议吗???...