Skip to content
索引

语法高亮指南

语法高亮决定了vscode中代码的颜色样式

语法高亮显示有两个组件:

  • Tokenization: 将文本拆分为标记列表
  • Theming: 使用主题或用户设置将标记映射到特定的颜色和样式

Tokenization

文本的标记化是将文本拆分为段,并用标记类型对每个段进行分类。

VSCode的标记化引擎由TextMate语法提供动力。TextMate语法是正则表达式的结构化集合,以plist(XML)或JSON文件的形式编写。VS代码扩展可以通过语法贡献点贡献语法。 TextMate标记化引擎与渲染器在同一个过程中运行,标记会随着用户类型而更新。标记用于语法突出显示,但也用于将源代码分类为注释、字符串和正则表达式区域。 从1.43版开始,VS代码还允许扩展通过语义令牌提供者提供令牌化。语义提供者通常由语言服务器实现,这些服务器对源文件有更深入的了解,并且可以在项目上下文中解析符号。例如,常量变量名可以在整个项目中使用常量高亮显示来呈现,而不仅仅是在其声明的位置。 基于语义标记的高亮显示被认为是对基于TextMate的语法高亮显示的补充。语义突出显示位于语法突出显示之上。由于语言服务器可能需要一段时间来加载和分析项目,语义标记突出显示可能会在短时间延迟后出现。 本文主要讨论基于TextMate的标记化。语义标记化和主题化在语义突出显示指南中进行了解释。 TextMate语法

Released under the MIT License.