Chroma Build Tool 是一个仅支持 Windows 的 VS Code 扩展,用来在编辑器右上角运行 Chroma 相关工具,并为 .pln、.dec、.pat 文件提供语言模式和 snippets。
语言模式
扩展默认会把这些文件关联到对应的 Chroma 语言模式:
.pln / .PLN -> chroma pln
.dec / .DEC -> chroma dec
.pat / .PAT -> chroma pat
.pln 这里需要特别注意:
- 需要 Chroma snippets、Chroma 语法高亮、基础函数导航和
TEST_PRO flow 导航时,请把语言模式保持为 chroma pln
- 需要 C/C++ 扩展支持时,请把当前文件语言模式改为
C/C++
这里说的 C/C++ 扩展支持,主要是指这类能力:
- IntelliSense
- 格式化
- 其他严格绑定在
C/C++ 语言 id 上的功能
也就是说:
chroma pln 侧重 Chroma 自定义语法、补全、基础函数导航和测试 flow 导航
C/C++ 侧重微软 C/C++ 扩展提供的语言能力
PLN 导航
在 chroma pln 模式下,扩展会解析 .pln / .PLN 文件:
- C 风格函数会显示在 VS Code 自带 Outline / Go to Symbol 中
TEST_PRO 会显示为一个 flow 节点
TEST_PRO 里的每个测试项会显示为 flow 子项
- Explorer 里会出现
Chroma Flow 视图,只显示当前文件的测试 flow
- 点击
Chroma Flow 里的测试项时,优先跳到同名 C 函数定义;如果没找到函数定义,则跳到 TEST_PRO 里的那一行
如果你想把 Chroma Flow 放到编辑器右侧,可以把这个视图拖到 VS Code 的 Secondary Side Bar。
VS Code 扩展不能把 Tree View 直接放进编辑器 minimap 所在的那一条区域。你可以保留 minimap,同时把 Chroma Flow 视图拖到右侧 Secondary Side Bar。
工作区
打开 .pln / .PLN 文件时,扩展会自动把该文件所在目录加入当前工作区。
这个行为可以通过配置关闭:
{
"craftTools.autoAddPlnFolderToWorkspace": false
}
如果 .pln 是从 ZIP 或其他虚拟文件系统里直接打开的,扩展不能把压缩包内部目录加入 VS Code 工作区,也不能保证后续编译命令拿到真实路径。请先把程序目录解压到磁盘,再打开里面的 .pln 文件。
文件图标
扩展为 Chroma 语言直接贡献文件图标,不会替换你当前使用的文件图标主题,也不会影响其他文件类型。
.pln / .PLN:PLN 图标
.dec / .DEC:DEC 图标
.pat / .PAT:PAT 图标
右上角按钮
编辑器右上角提供这些按钮:
make
build
plncmp
patcmp
plncmp2
mkwizard
扩展会先自动保存当前文件,再执行对应命令。
按钮适用文件
make:只对 .pln / .PLN 生效
build:只对 .pln / .PLN 生效
plncmp:只对 .pln / .PLN 生效
plncmp2:只对 .pln / .PLN 生效
mkwizard:只对 .pln / .PLN 生效
patcmp:只对 .pat / .PAT 生效
命令说明
make
- 执行:
cmd.exe /c make
- 工作目录:当前活动文件所在目录
build
- 执行:
cmd.exe /c "make build"
- 工作目录:当前活动文件所在目录
plncmp
- 执行:
plncmp.exe <当前文件完整路径>
- 工作目录:当前活动文件所在目录
patcmp
- 执行:
PatCmp.exe <当前文件完整路径>
- 工作目录:当前活动文件所在目录
plncmp2
- 执行:
plncmp2.exe <当前文件完整路径>
- 工作目录:当前活动文件所在目录
mkwizard
- 执行:直接启动
C:\Craft\bin\mkwizard.exe
输出和跳转
- 命令输出显示在
vsc-chroma-build-tool Terminal
warning 用黄色显示
error 用红色显示
- 识别到的错误和警告会同步写入 Problems 面板
- 可以从 Problems 直接跳转到文件和行
- 终端里可识别的错误行也可以直接点击跳转
Snippets
- snippets 只在
chroma dec、chroma pln、chroma pat 下生效
- 内容来自 TextPad clip library
c3380.tcl
- 当前转换结果文件是
snippets/c3380.code-snippets
配置
在 VS Code 设置中搜索 vsc-chroma-build-tool,或直接编辑 settings.json。
当前配置键仍然使用 craftTools.* 前缀:
{
"craftTools.makeCommand": "cmd.exe",
"craftTools.makeArgs": ["/c", "make"],
"craftTools.buildCommand": "cmd.exe",
"craftTools.buildArgs": ["/c", "make build"],
"craftTools.plncmpPath": "plncmp.exe",
"craftTools.patcmpPath": "C:\\CRAFT\\bin\\PatCmp.exe",
"craftTools.plncmp2Path": "C:\\CRAFT\\bin\\plncmp2.exe",
"craftTools.autoRevealOutput": true,
"craftTools.autoJumpFirstError": false,
"craftTools.autoAddPlnFolderToWorkspace": true
}
使用要求
- 仅支持 Windows
- 当前活动编辑器必须是磁盘文件
mkwizard 需要本机存在 C:\Craft\bin\mkwizard.exe
patcmp、plncmp2 等工具路径需要按你的实际环境配置