在摩纳哥编辑器中以编程方式重置标记化状态
Programmatically reset tokenization state in Monaco editor
我创建了一个 TokensProvider
来为我的自定义语言提供语法高亮显示。
这有效,但它仅在编辑文本时重绘。
问题是 - 我的自定义语言依赖于外部上下文,即使文本不变,它也会发生变化。因此,即使文本没有改变,我也需要触发语法高亮重绘。
我怎样才能做到这一点?
通过 vscode
回购挖掘,看起来像以下行:
monaco.editor.getModel(url)._resetTokenizationState()
不幸的是,这看起来像是一个未记录的 API,可能会与未来的版本冲突,所以 public API 会很好。
在 monaco 编辑器 0.33.0 版(可能是之前的版本)中,该方法已移至 TextModel 的成员对象 _tokenization 中。在那里你必须使用
monaco.editor.getModel(url)._tokenization._resetTokenizationState()
我创建了一个 TokensProvider
来为我的自定义语言提供语法高亮显示。
这有效,但它仅在编辑文本时重绘。
问题是 - 我的自定义语言依赖于外部上下文,即使文本不变,它也会发生变化。因此,即使文本没有改变,我也需要触发语法高亮重绘。
我怎样才能做到这一点?
通过 vscode
回购挖掘,看起来像以下行:
monaco.editor.getModel(url)._resetTokenizationState()
不幸的是,这看起来像是一个未记录的 API,可能会与未来的版本冲突,所以 public API 会很好。
在 monaco 编辑器 0.33.0 版(可能是之前的版本)中,该方法已移至 TextModel 的成员对象 _tokenization 中。在那里你必须使用
monaco.editor.getModel(url)._tokenization._resetTokenizationState()