Zig Language Extras:提升Zig开发效率的VSCode扩展
Zig Language Extras是一款专为Zig开发者设计的VSCode扩展,旨在简化和优化您的开发流程。它提供了以下命令,帮助您更高效地进行Zig开发:
此外,该扩展还会在测试上方显示代码镜头(code lenses),方便您运行或调试单个测试,并在文件的第一行显示代码镜头,运行所有测试。
Zig Language Extras依赖于以下几个扩展:
开发此扩展的主要动机是为了从Zig命令输出中创建精细的VSCode问题描述。测试运行时,输出可能会有几种不同的版本,例如构建失败、测试失败或运行测试时触发断言。所有这些输出的格式都不同,难以用单一的正则表达式处理。因此,我采用了更程序化的方法,通过逐行分析Zig命令输出。
大多数命令期望使用'zig init-exe'或'zig init-lib'构建的文件夹结构,根目录下有build.zig文件,源文件位于src文件夹下。包含build.zig的文件夹被认为是VSCode工作空间的根目录。
测试
如果需要使用额外的测试命令参数,请在工作空间配置中设置testArgs变量。例如,在依赖zlib的项目中,我使用以下配置:
{
"zig-language-extras.testArgs": "--deps zlib=zlib --mod zlib::../zig-zlib/src/main.zig --library z",
}
构建
调试
有两个调试命令:
您可以通过设置来修改调试器:"zig-language-extras.debugType": "type"。Type指的是您在launch.json文件中使用的具体"type"字段。
各个平台的默认调试器类型如下:
快捷键提示
在添加快捷键时,您可以限制其仅在Zig语言文件中使用:
// Zig extras: Run file tests
{
"key": "ctrl j t",
"command": "zig-language-extras.runFileTests",
"when": "editorLangId == 'zig'"
},
// Zig extras: Run single test
{
"key": "ctrl j s",
"command": "zig-language-extras.runSingleTest",
"when": "editorLangId == 'zig'"
},
扩展开发
Zig命令输出解析器位于src/parser.ts,对应的测试位于src/test/suite/parser.test.ts。
解析器测试用例位于src/test/suite/testdata中的文件中。每个用例的.txt文件都有对应的预期解析输出在_expected.json文件中。解析器测试加载所有txt文件,并期望得到与预期文件中的解析结果一致。
解析器不依赖于VSCode,因此可以在不运行VSCode的情况下进行测试:
mocha -ui tdd out/test/suite/parser.test.js
致谢
代码镜头的实现来自于Jarred-Sumner对原始vscode-zig扩展的拉取请求。
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com