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 中
Chroma Flow 顶层固定按 HW_BIN_DEF、SW_BIN_DEF、START_UP()、TEST_PRO、RELEASE() 的顺序显示,点击可跳转到模块位置
TEST_PRO 会显示为一个 flow 节点
TEST_PRO 里的每个测试项会显示为 flow 子项
BEFORE_TEST 和 AFTER_TEST 指定的函数也会按原始顺序显示在 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。
语法高亮和悬停帮助
在 chroma pln、chroma dec、chroma pat 模式下,常用 Chroma 语句、模块关键字、硬件挡位、模式枚举和数值单位会使用专门的语法高亮。
在 chroma pln 中把鼠标放到常用语句或它的实参上,可以查看:
- 语句用途和完整调用格式
- 当前实参的含义、类型和单位
- 默认值和允许设置的最大/最小范围
- 硬件挡位或枚举参数的可选值
- 对应的 3380 Language Manual 3.18 章节
首批覆盖 SET_LEVELN、LEVELS、RATEN、MARKERN、PIN_MODE、MLDPS Force/Judge/Measure、RELAY_ON/OFF、JUDGE_PAT、LOAD_PAT、TEST_NO、WAIT 和 DATALOG_MSG。
预定义 Pin Group IO_ALLPINS、DPS_ALLPINS、PREF_ALLPINS、UR_ALLPINS,以及预定义类型 CURRENT、FREQUENCY、TIME、VOLTAGE、RESISTANCE 也有独立高亮和悬停说明。注释和字符串内部不会应用 Chroma 关键字高亮。
PLN 中通过 SET_DEC_FILE 引用的 DEC 文件会被自动读取。PIN_LIST 中定义的 PIN NAME,以及 PIN_GROUP、UR_PIN_GROUP、POWER_PIN_GROUP、POWER_GANG_PIN_GROUP 中定义的 PIN GROUP,会在 PLN 代码中使用不同的语义高亮;鼠标悬停时会显示符号类型和来源 DEC 文件。相对路径以当前 PLN 文件目录为基准,支持 Windows 反斜杠和大小写文件扩展名。
Socket Loop 的预定义符号 SOCKET、FRZ_ON、FRZ_OFF 也有独立高亮和悬停说明。
工作区
打开 .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 等工具路径需要按你的实际环境配置