摩纳哥编辑器:如何重新计算和重绘语义高亮数据?

Monaco editor: how to recompute and redraw semantic highlighting data?

我已经在 Monaco 上实现了语义突出显示(使用 registerDocumentSemanticTokensProvider)。我的语义突出显示取决于一些编辑器外的信息(例如,具有有效 属性 名称的数据模型,我根据它检查如何突出显示标记)。这些信息可能会随着时间的推移而改变,例如,因为用户向数据模型添加了一个新的 属性,甚至可能是编辑器中代码操作的结果。因此,每当数据模型发生变化时,我都想更新编辑器以显示新信息。然而,Monaco 仅在文档​​更改时更新语义突出显示。有没有办法强制它重新应用突出显示,即使没有发生编辑操作?

事实证明,只需重新设置模型的值,语义突出显示就会刷新:

model.setValue(model.getValue());

据我所知,这在任何地方都没有记录。在摩纳哥 0.24.0.

上测试