我使用“deltaDecorations”函数在编辑器打开时根据某些规则动态设置一些内联装饰。但是在编辑内容时,我想删除所有现有的装饰并更新一些装饰。似乎新的装饰总是附加在现有的装饰上,甚至范围都是相同的。如何删除所有现有的装饰并设置新的?
非常感谢。
请参阅 Github 上的以下答案。
基本上,这个想法是
deltaDecorations
函数返回这些装饰的句柄,如果你想摆脱旧的装饰,你需要为新函数调用提供这些旧句柄。
var decorations = [];
// returns decoration handles
decorations = editor.deltaDecorations(decorations, ....);
...
decorations = editor.deltaDecorations(decorations, ....);
createDecorationsCollection 返回接口 IEditorDecorationsCollection。您仅调用此方法一次,然后使用返回的对象。 https://microsoft.github.io/monaco-editor/typedoc/interfaces/editor.IEditorDecorationsCollection.html