首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >摩纳哥编辑器自定义令牌提供程序行为

摩纳哥编辑器自定义令牌提供程序行为
EN

Stack Overflow用户
提问于 2021-02-03 10:21:26
回答 1查看 702关注 0票数 1

我试图实现具有非常特定行为的令牌程序,例如,在以下情况下:

代码语言:javascript
复制
1:   Line 1
2:   Line 2
3:
4:   Line 4 
5:   Line 5
6:   Line 6
7:
8:
9:   Line 9

第1行上的更改将导致第1-3行上的重新标记化,第5行上的更改将导致第3-8行上的重新标记化,第9行上的更改将导致第7-9行上的重新标记化,等等.这是因为在下一个空行之前,给定行的标记化可能会根据发生的情况而有所不同。

因此,基本上,我希望用用空行分隔的块来标记文本。

我有一个使用装饰品的模糊原型,但是对于我的使用来说,根本没有使用装饰或语义标记的方法,主要是出于性能方面的原因。然而,摩纳哥的setTokensProvider似乎只在逐行的基础上工作:编辑文档中的一行将导致随后的每一行都被重新标记,没有办法阻止它,也没有在之前重新标记行的方法。

目前是否有任何实际的方法来做到这一点,即使它是黑客和/或涉及到一些未公开的API?vscode的textmate语法能够指定跨越多行的标记,因此我觉得好像遗漏了什么:/

EN

回答 1

Stack Overflow用户

发布于 2022-01-30 07:46:57

听起来你在找DocumentSemanticTokensProvider。看看这篇博客文章

顾名思义,摩纳哥的DocumentSemanticTokensProvider为整个输入的文档提供语义。与令牌提供程序不同的是,DocumentSemanticTokensProvider实现不是提供一组正则表达式来标记文档,而是一个回调函数:当调用该函数时,该函数具有包含用户输入的代码的整体模型,实现者有责任返回所需的语义信息,需要进行完整的解析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66025528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档