用于 VS Code 的 Citect Cicode 语法高亮与格式化扩展。
功能
.ci文件识别与语法高亮- 文件列表与过滤:侧边栏提供 “Cicode 文件” 视图仅列出指定后缀文件;并提供命令一键切换 Explorer 仅显示指定后缀文件
- 代码片段(Snippets):提供
ci.if/ci.ife/ci.fori/ci.while/ci.whilet/ci.select/ci.func/ci.funcfull等常用模板(降低与自动补全冲突) - 格式化:Tab 缩进 + 一行一语句(按
;拆分) - 注释保留:
//、!、/* ... */ - 字符串高亮:双引号字符串,字符串内双引号使用
""表示;反斜杠不作为通用转义(兼容 Windows 路径末尾\) - 支持从本地离线帮助自动提取保留关键字与系统函数,用于高亮
语法高亮来源
- 保留关键字:来自离线帮助的
Cicode_keywords.html - 系统函数:扫描离线帮助内容页中的函数名(
pFunctionName)
离线帮助目录默认约定为(项目根目录下):
Citect SCADA/Subsystems/CicodeReferenceCitectHTML/Content
安装
- 克隆或复制本扩展到本地目录
- 执行
npm install - 执行
npm run compile
使用
- 在 VS Code 中打开
.ci文件 - 语言会被识别为
Cicode - 使用
Format Document/Alt+Shift+F格式化 - 输入代码片段触发词(如
ci.funcfull、ci.whilet、ci.select)并按Tab展开模板 - 只想专注查看指定后缀文件时:
- 在资源管理器中查看 “Cicode 文件” 视图(仅列出
cicode.explorer.extensions配置的后缀,默认.ci) - 打开命令面板(
Ctrl+Shift+P):- 执行:
Cicode: 仅显示指定后缀文件(切换 Explorer):切换默认资源管理器过滤/恢复 - 执行:
Cicode: 刷新 Cicode 文件视图:刷新侧边栏的 “Cicode 文件” 列表
- 执行:
- 在资源管理器中查看 “Cicode 文件” 视图(仅列出
Citect Cicode(VS Code 扩展)
用于 VS Code 的 Citect Cicode 语法高亮与格式化扩展。 主要解决citect cicode 打开文件慢,没有代码折叠,代码分析和查找不方便的问题。
功能
.ci文件识别与语法高亮- 文件列表与过滤:侧边栏提供 “Cicode 文件” 视图仅列出指定后缀文件;并提供命令一键切换 Explorer 仅显示指定后缀文件
- 代码片段(Snippets):提供
ci.if/ci.ife/ci.fori/ci.while/ci.whilet/ci.select/ci.func/ci.funcfull等常用模板(降低与自动补全冲突) - 格式化:Tab 缩进 + 一行一语句(按
;拆分) - 注释保留:
//、!、/* ... */ - 字符串高亮:双引号字符串,字符串内双引号使用
""表示;反斜杠不作为通用转义(兼容 Windows 路径末尾\) - 支持从本地离线帮助自动提取保留关键字与系统函数,用于高亮
安装
- 方式 1:从 VSIX 安装
- 从
releases/下载最新.vsix - VS Code 命令面板执行:
Extensions: Install from VSIX... - 选择下载的
.vsix,重载窗口
- 从
使用
- 打开
.ci文件(语言会识别为Cicode) - 需要格式化时使用:
Format Document/Alt+Shift+F - 输入代码片段触发词并按
Tab展开模板(详情见docs/snippets.md) - 只想专注查看指定后缀文件时:
- 在资源管理器中查看 “Cicode 文件” 视图(默认仅列出
.ci) - 打开命令面板(
Ctrl+Shift+P):- 执行:
Cicode: 仅显示指定后缀文件(切换 Explorer):切换默认资源管理器过滤/恢复 - 执行:
Cicode: 刷新 Cicode 文件视图:刷新侧边栏的 “Cicode 文件” 列表
- 执行:
- 在资源管理器中查看 “Cicode 文件” 视图(默认仅列出
格式化规则
- 规则说明见:
docs/formatting-rules.md
公共发布仓库(仅文档与安装包)
目标:源码仓库保持私有;对外仅公开“安装/使用相关内容”(README.md、releases/*.vsix)。
- 私有仓库:开发与构建(本仓库)
- 公共仓库:仅存放文档与 VSIX(建议单独建一个 public repo)
一次性准备
- 在 Gitee 创建公共仓库(例如:
cicode-vscode-release) - 将公共仓库 clone 到本机目录:
E:\develop\develop 2022\cicode-vscode-release
- 若该目录为空也可直接执行发布脚本,脚本会自动
git init并设置origin为:https://gitee.com/szwanghs/cicode-vscode-release
发布(推荐)
在本项目根目录执行 PowerShell 脚本:
.\scripts\publish-release-repo.ps1
可选参数:
.\scripts\publish-release-repo.ps1 -Message "release: update docs+vsix"
.\scripts\publish-release-repo.ps1 -DryRun
.\scripts\publish-release-repo.ps1 -NoBuild
.\scripts\publish-release-repo.ps1 -NoCommit
说明:
- 脚本会将“对外版 README(由本仓库 README 中的
RELEASE-README区块生成)”与打包生成的releases/<name>-<version>.vsix同步到公共仓库目录并在公共仓库提交 - 公共仓库不会包含
src/等源码目录 - 如需推送到 Gitee:进入
E:\develop\develop 2022\cicode-vscode-release执行git push
格式化规则
规则说明见:./docs/formatting-rules.md
安装到 VS Code(本地)
-
方式 1:使用 VS Code 扩展调试(推荐)
- 用 VS Code 打开本项目
- 执行
npm install、npm run compile - 按
F5启动 “Extension Development Host” - 在新窗口中打开任意
.ci文件测试语法高亮与格式化
-
方式 2:打包为 VSIX 安装
- 安装打包工具:
npm i -g @vscode/vsce - 打包:
vsce package - 在 VS Code 中打开命令面板:
Extensions: Install from VSIX...并选择生成的.vsix
- 安装打包工具:
发布给其他人使用
-
方式 1:发布 VSIX 文件(适合内网/不开源场景)
- 开发机执行
vsce package生成.vsix - 将
.vsix发给其他人 - 其他人在 VS Code 中执行:
Extensions: Install from VSIX... - 说明:打包内容受
package.json.files控制,避免把离线帮助/大文件一并打进 VSIX
- 开发机执行
-
方式 2:发布到 VS Code Marketplace(面向公众/团队统一更新)
- 先在
package.json中确认:publisher、name、version等信息 - 登录并获取发布 token(Publisher 管理后台)
- 执行发布:
vsce publish(会自动打包并发布) - 后续更新:修改
version后再次vsce publish
- 先在
在 VS Code 中测试(建议流程)
- 高亮测试:打开
examples/*.ci,检查关键字/系统函数/注释(!/////* */)是否正确着色 - 格式化测试:在
.ci文件里执行Format Document(Alt+Shift+F),并重点验证:- 行尾注释不换行
,后只有一个空格;操作符两侧一个空格- 函数定义头拆成多行(作用域/返回类型/FUNCTION/名称)
- 参数续行从第 2 行开始按
(对齐并 +1 Tab
常用命令
- 编译:
npm run compile - 扫描 examples 并展示差异摘要:
npm test - 校验格式化输出是否满足基础规范:
npm run validate:examples - 从离线帮助生成语法高亮:
npm run generate:syntaxes - 校验语法高亮是否已同步提交:
npm run check:syntaxes
示例
FUNCTION MyFunction()
IF ReadTag("TankLevel") > 90 THEN
Message("Tank level is high");
ELSE
Message("Tank level is normal");
END
END