单击快速修复(CodeAction)后,在摩纳哥编辑器中清理标记

问题描述 投票:0回答:1

我正在为我在编辑器代码中找到的标记创建代码操作(快速修复)。

总而言之,我的 quickfix 只是替换标记所在的一段文本...... quickfix 可以按预期替换文本,但是,一旦应用了 quickfix,旧标记仍然存在并且文本的某些部分仍然是“下划线”,带有旧 Marker 的警告。

您可以在这里查看代码示例

您知道应用快速修复后是否有清理标记的方法吗?或者来自 Monaco Editor 的事件监听器可以监听是否应用了 quickfix?

谢谢!!

monaco-editor
1个回答
0
投票

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);
});
© www.soinside.com 2019 - 2024. All rights reserved.