新的介绍内容:
Experimental Tree Sitter是一款为VSCode设计的语法高亮插件,基于Tree-Sitter技术,为几乎所有编程语言提供强大的语法着色引擎。该扩展通过利用VSCode Decoration API,覆盖了标准TextMate正则匹配提供的语法着色。它通过构建完整的语法树,有效克服了内置TextMate语法的所有限制。作为一款上下文感知的工具,它能够解析复杂的语言结构,提供对源代码的完整覆盖。增量解析系统确保了高性能,这些优势使得语法高亮更加准确和一致。
注意事项
目前,VS Code Marketplace发布的扩展仅在Windows-x64上可用。未来更新将解决此问题。对于其他操作系统,请从GitHub页面下载预编译的.vsix包。
支持的语言
自定义设置
Syntax Highlighter提供了多种设置,以便将主题颜色分配给语法术语。为了简单直观的自定义,我们保持了语法术语的数量较少,包括:类型、函数、变量、字符串、数字、注释等。这些设置可以在settings.json的workbench.colorCustomizations语法子部分中找到。可以通过自动完成功能来发现可自定义的颜色,并在悬停时提供简短描述。完整的设置列表可以在Contributions选项卡中找到。为了为[Visual Studio Dark]主题重新定义语法颜色,请将以下内容添加到settings.json中:
"workbench.colorCustomizations": {
"[Visual Studio Dark]": {
"syntax.type": "#26A69A",
"syntax.namespace": "#00897B",
"syntax.function": "#00BCD4",
"syntax.variable": "#42A5F5",
"syntax.string": "#90A4AE",
"syntax.number": "#90A4AE",
"syntax.punctuation": "#A1887F",
"syntax.comment": "#546E7A",
"syntax.keyword_constant": "#A89F9B",
"syntax.keyword_directive": "#7E57C2",
"syntax.keyword_control": "#7986CB",
"syntax.keyword_operator": "#9575CD",
"syntax.storage_modifier": "#00897B"
}
},
为了与内置的TextMate语法保持一致,可以为相应的TextMate范围提供相同的颜色。或者,可以将颜色从TextMate移植到Syntax Highlighter。在大多数情况下,存在一对一的匹配。例如,对于C语言:syntax.function = entity.name.function 或 syntax.number = constant.numeric。可以通过Ctrl Shift P -> Developer: Generate Color Theme...来发现当前的TextMate颜色,在生成的主题文件中查看tokenColors部分。以下设置将TextMate颜色与Syntax Highlighter同步,适用于C语言:
"editor.tokenColorCustomizations": {
"[Visual Studio Dark]": {
"types": "#26A69A",
"functions": "#00BCD4",
"variables": "#42A5F5",
"strings": "#90A4AE",
"comments": "#546E7A",
"keywords": "#7986CB",
"textMateRules": [
{
"scope": "storage.type",
"settings": {"foreground": "#26A69A"}
},
{
"scope": "entity.name.function",
"settings": {"foreground": "#00BCD4"}
},
{
"scope": [
"meta.function-call",
"source.cpp meta.block variable.other"
],
"settings": {"foreground": "#42A5F5"}
},
{
"scope": "punctuation",
"settings": {"foreground": "#A1887F"}
},
{
"scope": "comment",
"settings": {"foreground": "#546E7A"}
},
{
"scope": "constant.numeric",
"settings": {"foreground": "#90A4AE"}
},
{
"scope": [
"constant.language",
"variable.language"
],
"settings": {"foreground": "#A89F9B"}
},
{
"scope": "keyword.control",
"settings": {"foreground": "#7986CB"}
},
{
"scope": "keyword.operator",
"settings": {"foreground": "#9575CD" }
},
{
"scope": "storage.modifier",
"settings": {"foreground": "#00897B"}
},
]
}
},
分发
由于依赖于原生Node.js模块,目前无法在VS Code Marketplace发布跨平台包。发布的版本仅与Windows-x64兼容。您可以从GitHub存储库下载适用于您的操作系统的.vsix包。要安装下载的扩展,请执行Ctrl Shift P -> Extensions: Install from VSIX命令,并选择下载的文件。目前,适用于Windows-x64和Linux-x64的版本已经可用。
构建
Syntax Highlighter扩展依赖于特定的Tree-sitter模块。这些是需要为特定架构、操作系统和Node.js版本编译的原生Node.js模块。请参考BUILD.md获取相关指令。
贡献
贡献的最佳方式是实现对新语言的支持。扩展的改进也受到欢迎。待办事项清单上的第一件事是改进分发和打包,这些工作由于原生模块而变得复杂。请参考CONTRIBUTE.md获取详细信息。
待办事项
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com