Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>KLP 项目管理New to Visual Studio Code? Get it now.
KLP 项目管理

KLP 项目管理

lilixxs

| (0) | Free
浏览与编辑 KLP 工控软件的项目文件夹:变量、ST 程序、通讯配置与工程改名
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

bs-klp-mgmt(KLP 项目管理)

VSCode 扩展,用于管理与编辑 KLP 工控软件的单机项目文件夹。KLP 工程是一个文件夹:入口为根目录下的 <工程名>.mgp(UTF-8 XML),设备数据目录由 ConfigurationData/DataDir 指定,其中 PrjLibrary.mdb 是 Jet 3 数据库(变量、程序注册、通讯网关配置、物理 I/O),ST 源码为资源目录下的 .stf 文件(GBK + CRLF)。格式细节见 docs/project-file-format.md。

当前状态

  • 功能按既定方案实现;核心写入路径有合成工程的 node:test 回归,并在真实 VSCode 扩展宿主 + 原版 KLP 副本上做过内容级回读核对(改名/新增/删除后在 KLP 中核对界面与树节点,不是只看“打开无报错”)。
  • “无需额外运行环境”的干净 Windows 验证尚未完成,标注为待验证。 验收步骤已写入 docs/clean-windows-vsix-acceptance.md,但该文档只规定可复跑的检查项,不代表已通过;不得据此宣称“已通过 / 完全可用”。
  • 数据库写入中仍有若干字段规则未证实(如 CRCInitValue*、Hook、RefStatus、GWDevice.RefDevice 的生成与 KLP 是否重算),见 docs/project-file-format.md 第 6 节。

功能

功能 说明
打开工程 「KLP: 打开项目」选择 .mgp(支持多选);另有「打开工程文件夹」「打开当前工作区工程」
项目树 资源管理器侧边栏 KLP 项目 视图,含刷新 / 重新读取
变量 新增、删除、改名(改名同时更新数据库与全部 ST 源文件)
ST 程序 新增、删除、改名;仅限 ST 语言,非 ST 源文件只读,禁止写 / 删 / 改名
通讯配置 网关通道、网关设备、变量映射的增删改
工程整体改名 同步改目录名、.mgp 文件名与 <Project Name> 属性;DataDir 与设备名不变
保存 / 放弃 草稿 → 校验 → 写计划 → 冲突检测 → 事务写入;可整体放弃未保存修改
ST 编辑 klp-st 语言(TextMate 语法、诊断、补全、悬停、定义),经 klp-st: 文件系统按 GBK 读写 .stf

保存层使用临时数据库副本执行事务,提交并回读校验后替换原库;失败不留下半写状态,必要时回滚并报告未恢复现场。

不做的事

  • 不连接设备、不编译、不下载。
  • 不写二进制编译产物(.IC_ .vmc .xct .xtc)与 Symbol.txt。
  • 不写 Prjlibrary.bak。
  • 不写 project.gpm、DDCconf.ini、Dic.Ini 等配置文件。

依赖与前提

  • Windows(依赖 32 位 Windows PowerShell + 系统自带 Jet 4.0 / ADO 读写 .mdb)。
  • VSCode 扩展宿主是 64 位,无法直接加载 32 位 Jet,因此数据库访问由 media/mdb-helper.ps1 跨进程完成,双方以 UTF-8 JSON 临时文件通信;每次调用使用临时的 System.mdw 工作组副本。
  • 当前开发机满足 32 位 Jet / ADO / PowerShell 条件;干净机器是否自带这些组件未经验证,属“无需额外安装”交付条件的主要不确定性。

开发命令

本机只有 npm,没有 pnpm / yarn。

npm install         # 安装依赖
npm run check       # tsc + vue-tsc 类型检查
npm test            # node --test 回归(含 Jet 集成测试,需 32 位 Jet + PowerShell)
npm run build       # esbuild 打包扩展 + vite 构建 webview
npm run package     # 生成 dist/bs-klp-mgmt-<版本>.vsix(离线)

验证顺序:check → test → build → package。改 webview 后需 npm run build:webview 再重开面板;扩展宿主不会热更新 dist/。调试用 F5(.vscode/launch.json,preLaunchTask 自动 build)。

目录结构

路径 作用
src/extension.ts 入口:命令、树、状态栏、ST 语言服务与文件系统注册
src/project/mgpParser.ts 解析 .mgp;工程改名做属性定点替换
src/project/session.ts 打开工程:目录定位、数据库读取、.stf 读取、诊断
src/project/plan.ts 草稿 → 校验 → 写计划(纯函数)
src/project/save.ts 执行写计划:冲突检测、临时库事务、文件回滚、工程改名
src/mdb/jet.ts 32 位 PowerShell 助手桥(JSON 协议、临时工作组)
src/st/ ST 分析、语言提供器、klp-st: 文件系统、变量说明虚拟文档
src/shared/types.ts 扩展与 webview 共用模型(不 import vscode 或 DOM)
src/tree/projectTree.ts 项目树
src/ui/controller.ts 快照 / 草稿 / 保存状态
src/webview/editorPanel.ts 面板宿主(CSP nonce、资源 URI 重写)
media/mdb-helper.ps1 Jet 读写助手(ASCII,UTF-8 JSON 协议)
syntaxes/klp-st.tmLanguage.json ST TextMate 语法
language-configuration.json ST 注释 / 括号 / 缩进 / 折叠
webview/ Vue 3 前端(Vite root)
test/ node:test 回归;test/support/ 为合成工程与 Jet fixture 生成器
scripts/package-vsix.mjs 离线生成可安装 .vsix
docs/ 项目文件格式说明、验收步骤等文档
dist/ 构建产物,不进版本库

数据与隐私

  • 仓库不含真实工程文件、客户名称、内网 IP 或网络配置。
  • 参考工程与调研归档保存在仓库外,不入库;文档中的示例均为脱敏/合成内容。
  • 测试使用 test/fixtures/ 或测试运行时生成的合成工程,不拷贝真实工程。

许可证

待定。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft