Monaco 中可以对关键字进行高亮的自定义,通过提供关键字位置信息和关键字颜色进行实现,先看一下效果,这里自定了 zzz 为关键字,背景色为绿色。

通过 registerDocumentSemanticTokensProvider 进行注册

实现一下方法:
- getLegend:返回关键字和修饰符信息
- provideDocumentSemanticTokens:返回 Token 位置信息
- releaseDocumentSemanticTokens:可以在此方法中做数据的清理工作

provideDocumentSemanticTokens 放回返回的 SemanticTokens,这个是数据结构很重要,但是文档中什么都没写,只能看代码。
data.push(
// 与上一行的差值,行号从 0 开始,例如 0,1,2 都有关键字,那么对应就是 0,1,1
i - prev
订阅专栏 解锁全文
533

被折叠的 条评论
为什么被折叠?



