在链接错误上,我可以提出适当的诊断(比如MyDSL.MY_APPROPRIATE_DIAGNOSTIC),然后在MyDSLQuickfixProvider中通过以这种方式注释来快速修复它:
@Fix(MyDSL.MY_APPROPRIATE_DIAGNOSTIC)
public void fixMyAppropriateDiagnostic(final Issue issue, final IssueResolutionAcceptor acceptor) {
...
}
如果我想自动解析诊断,即自动执行IModification而不建议用户快速修复(假设诊断的快速修复是唯一的),该怎么办?
有没有办法将(即时)处理代码与诊断关联起来的方式与(用户建议的)快速修复方式类似?
提前致谢, 马可
答案 0 :(得分:0)
无法设置快速修复以自动执行。您的替代方案是:
从代码中的其他位置调用标记解析代码。即虽然标记分辨率通常使用问题视图,标尺按钮和类似UI在用户请求中显式触发,但您可以从任何地方调用它们。请确保您不会干扰不是来自插件的快速修正,并确保您的用户不会对此非日食工作流程感到惊讶。
对于某些问题,您可以改为创建代码完成规则或模板。根据要求,这些仍然不是完全自动的,但基本上你已经可以通过这种方式“纠正”部分用户输入并避免标记完整输入的违规。