摩纳哥编辑器中 registerDocumentSemanticTokensProvider 和 setMonarchTokensProvider 之间的区别?
Difference between registerDocumentSemanticTokensProvider and setMonarchTokensProvider in Monaco Editor?
我是Monaco Editor新手,我在官网发现,如果你想注册你的自定义语义标记高亮,你可以通过两种方式:使用[=]提供的原生方法registerDocumentSemanticTokensProvider
or using the setMonarchTokensProvider
17=]君主.
所以我想知道这两种方法之间有什么区别,一般来说,哪种方法更好,或者换句话说,我应该使用哪种方法来提供语言的语义标记?
API setMonarchTokensProvider
采用一个接口来描述如何标记输入(很像词法分析器在通常的 parser/lexer 设置中所做的,但以声明的方式,使用正则表达式)。
语义标记比这更重要,因为它们描述了(词法分析器)标记的语义(附加含义)。例如:词法分析器(或那个 Monarch 令牌提供者)将输入分类为数字、字符串、id 等类型的令牌。语义令牌提供者可以获取 id 并确定它们是否实际表示 类、变量等。
我是Monaco Editor新手,我在官网发现,如果你想注册你的自定义语义标记高亮,你可以通过两种方式:使用[=]提供的原生方法registerDocumentSemanticTokensProvider
or using the setMonarchTokensProvider
17=]君主.
所以我想知道这两种方法之间有什么区别,一般来说,哪种方法更好,或者换句话说,我应该使用哪种方法来提供语言的语义标记?
API setMonarchTokensProvider
采用一个接口来描述如何标记输入(很像词法分析器在通常的 parser/lexer 设置中所做的,但以声明的方式,使用正则表达式)。
语义标记比这更重要,因为它们描述了(词法分析器)标记的语义(附加含义)。例如:词法分析器(或那个 Monarch 令牌提供者)将输入分类为数字、字符串、id 等类型的令牌。语义令牌提供者可以获取 id 并确定它们是否实际表示 类、变量等。