我正在为我在编辑器代码中找到的标记创建代码操作(快速修复)。
总而言之,我的 quickfix 只是替换标记所在的一段文本...... quickfix 可以按预期替换文本,但是,一旦应用了 quickfix,旧标记仍然存在并且文本的某些部分仍然是“下划线”,带有旧 Marker 的警告。
您可以在这里查看代码示例
您知道应用快速修复后是否有清理标记的方法吗?或者来自 Monaco Editor 的事件监听器可以监听是否应用了 quickfix?
谢谢!!
dispose
参数是在按下快速修复后执行的函数。我通过将验证提取到全局范围来更改您的代码,并像这样修改处置:
dispose: () => {
setTimeout(() => {
console.log("Delayed for 1 second.");
validate(model);
}, 1000); }
我延迟了它的执行,因为有时如果没有延迟它就不起作用。
第二个选项(可能更合适)是在用户更改文本时调用 validate()。这是一个类似问题的答案,我从中获取了以下代码示例:
var handle = null;
ed.getModel().onDidChangeContent(() => {
// debounce
clearTimeout(handle);
handle = setTimeout(() => validate(model), 500);
});