BPE Helper
BPE Helper 是一个面向 C++ BPE / Avenue XML 工程的 VS Code 扩展,专门服务于这类目录结构的仓库:
compose_conf/
avenue_conf/
config.xml
trigger_config.xml
它的目标不是做通用 XML 编辑,而是为 BPE 流程编排、服务描述、路由配置和常见框架变量提供更贴近真实工程的补全、跳转和校验能力。
适用场景
- 编写
compose_conf/*.xml 流程组合文件
- 编写或阅读
avenue_conf/*.xml 服务描述文件
- 排查
config.xml 中的服务路由配置
- 在 BPE 项目中定位本地实现、远程服务、DB/Cache/Redis 服务
核心能力
1. 流程文件补全
在 compose_conf/*.xml 中提供:
request service="服务.消息" 对应下游请求参数补全
$this.xxx
request 中联想下游消息 requestParameter
response 中联想当前流程服务 responseParameter
$req.xxx
- 联想当前流程服务
requestParameter
$rsp.this.s、$code.s
$rsp.this.s1.
$rsp.nodeName.s
$rsp.nodeName.s1.
- 联想指定
node + sequence 的响应字段
2. 跳转
- 从
compose_conf 中的 service="服务.消息" 跳到 avenue_conf 对应消息定义
- 从
avenue_conf 中的 <message name="..."> 反向跳到本地 compose_conf
- 若不是本地实现,则跳到
config.xml 中对应的 SosList / ConfigDb / DbSosList / CacheSosList / RedisSosList
3. 诊断
- 基础 XML 闭合校验
compose 根节点、endnode、goto node、node.index、sequence.index 校验
request service="服务.消息" 目标存在性校验
$rsp.node.sequence.field、$code.sequence 的 node/sequence 存在性校验
$rsp.this.s1.field、$rsp.node.s1.field 是否属于对应调用服务的 responseParameter
$req.xxx 是否属于当前流程服务的 requestParameter
$this.xxx 是否属于目标消息请求或响应参数
- 流程变量
<def>、未定义变量、保留变量使用校验
- 框架内置变量识别,例如
$lastcode
4. 框架兼容性
request service="服务.消息" 中的服务名和消息名按大小写不敏感匹配
- 兼容历史流程文件中的大小写混写写法
安装
从 VS Code Marketplace 安装,或使用命令:
code --install-extension JenW1nt0p.bpe-helper
如果使用本地包安装:
code --install-extension /path/to/bpe-helper-0.1.5.vsix
使用说明
- 在 VS Code 中打开 BPE 工程根目录。
- 确保仓库中包含
compose_conf、avenue_conf 和 config.xml。
- 打开 XML 文件开始编辑,补全、诊断和跳转会自动生效。
- 跳转支持使用
F12,也支持命令面板中的 BPE: Go To Target。
- 当你批量修改了服务定义或流程文件后,可以执行命令面板中的
BPE: Refresh Index 重新刷新索引。
这个扩展支持两种打开方式:
- 直接打开单个 BPE 项目目录,例如
as-lsc/
- 打开包含多个 BPE 项目的父目录,扩展会按当前文件向上定位最近的项目根目录
Windows 使用说明
这个扩展使用的是 VS Code 标准的“转到定义”能力,因此鼠标手势由 VS Code 自身设置决定,不是插件单独控制:
- 如果
editor.multiCursorModifier 是 alt,通常表现为 Ctrl+Click 跳转
- 如果
editor.multiCursorModifier 是 ctrlCmd,通常表现为 Alt+Click 跳转
也就是说,在部分 Windows 环境里出现“Alt+Click 能跳、Ctrl+Click 不能跳”是 VS Code 的预期行为,不代表插件失效。
如果你希望恢复 Ctrl+Click 跳转,可以在用户设置里加入:
"editor.multiCursorModifier": "alt"
如果不想依赖鼠标手势,也可以直接使用:
F12
- 命令面板中的
BPE: Go To Target
已知限制
- 反向跳转优先识别“是否有本地 compose 实现”;没有时再按
config.xml 路由块查找。
- 对于纯本地同步插件类服务,如果既没有 compose 实现、也没有
config.xml 入口,则当前不会提供跳转目标。
- 这个扩展假设工程遵循 BPE/Avenue 约定,不适用于任意 XML 项目。
开发与验证
本地验证:
node scripts/smoke.js
打包:
npx @vscode/vsce package
| |