BMC Studio 开发辅助插件
为 BMC Studio 开发者提供强大的 JSON 配置文件智能支持

🚀 功能特性
BMC Studio 插件为复杂的 JSON 配置文件提供类似 IDE 的智能支持:
🎯 核心功能
- 🔍 定义跳转 -
Ctrl+点击 跳转到 Statements、ProcessingFlow、ReqBody、Uri 定义
- 💡 智能提示 - 鼠标悬停显示完整定义内容和类型信息
- ⚡ 自动补全 - 输入
Statements/ 触发方法名智能提示
- ❌ 错误检测 - 实时语法验证和错误提示
- 🎨 语法高亮 - 引用语法的视觉装饰和状态指示
- 🔄 芯片总线例外 - ManagementTopology 中的芯片在不同总线时允许重复配置
🆕 批量表达式计算器 (v0.0.27)
- 🔄 双模式切换 - 调试模式与用例模式一键切换
- 调试模式: 单输入实时计算,显示每级管道处理结果
- 用例模式: 批量测试验证,对比期望输出与实际输出
- 📋 测试用例管理 - 便捷的测试数据导入
- 支持文本粘贴:
input1 input2 ... expectedOutput 格式
- 支持文件导入: .txt / .csv 文件
- 支持多输入表达式:
$1;$2 |> expr($1 + $2)
- 📊 结果展示 - 清晰的测试结果可视化
- 表格显示: 输入、期望输出、实际输出、匹配状态(✅/❌)
- 执行统计: 总数、匹配数、不匹配数、失败数
- 结果导出: 支持 TXT / CSV 格式
- 🔄 表达式同步 - SR 文件保存时自动刷新 WebView
- 🔌 可扩展架构 - 策略模式用例加载器,支持未来扩展网络/API数据源
🆕 SMC 偏移量计算器 (v0.0.26)
- 🧮 智能计算 - SR 文件中 SMC 偏移量的可视化计算
- 点击 CodeLens 打开计算面板
- 输入功能码、命令码、MS、RW、参数各分量
- 自动计算并应用 32 位偏移量
- 🔍 实时解码 - 灰色水印显示偏移量各分量
Fn:0x12 Cmd:0x4480 MS:0x0 RW:0x0 Param:0x0
- 支持 10 进制、16 进制 (0x)、8 进制 (0o) 格式
- 💡 悬浮提示 - 鼠标悬停显示 SMC 命令字位布局详解
- 功能码 (Function): 6 位 (31-26)
- 命令码 (Command): 16 位 (25-10)
- 读取方式 (MS): 1 位 (9)
- 读写方向 (RW): 1 位 (8)
- 参数 (Parameter): 8 位 (7-0)
- ⚙️ 可扩展框架 - 支持添加新的装饰类型
- 注册式装饰系统
- 独立的装饰类型实现
- 100ms 防抖优化性能
🆕 SR 文件预览 (v0.0.19)
- 📄 实时预览 - 类似 Markdown 预览的 .sr 文件实时预览功能
- 右侧并排显示合并后的内容
- 编辑即预览,无需保存
- 支持 Ctrl+F 搜索
- 🔀 智能合并 - 自动检测并合并多个相关文件
- 主文件+扩展构型 (XXX.sr + XXX_soft.sr)
- 多文件组合构型 (basic_info + mgmt_model + version)
- 📌 来源显示 - 顶部显示参与合并的源文件列表
🆕 管道表达式计算 (v0.0.18)
- 📊 表达式求值 - 支持完整的数学和逻辑运算
- 算术:
+, -, *, /, // (整除), % (取模)
- 比较:
>, <, >=, <=, ==, !=
- 逻辑:
&&, ||, !
- 位运算:
&, |, ^, ~, <<, >>, >>>
- 三元:
?:
- 🔗 管道链 - 多级管道处理
$1 |> expr($1 + 1) |> expr($1 * 2)
- 多输入:
$1;$2;$3 |> expr($1 + $2 + $3)
- 📝 C 风格格式化 - string.format 函数
- 精度:
%.2f, 宽度: %10s, 填充: %010d
- 对齐:
%-10s (左), 进制: %x, %o, %b
📝 支持的语法类型
${Statements/methodName()} - SQL 语句引用
ProcessingFlow[index] - 处理流程数组元素
ReqBody.path.to.field - 请求体字段路径
Uri.paramName - URI 模板参数
🏗️ 适用场景
- 复杂的 API 接口配置文件
- 包含多层嵌套和引用关系的 JSON 配置
- 需要快速导航和验证的大型配置文件
- BMC Studio 项目开发和维护
📦 安装使用
通过 VS Code 扩展商店
- 打开 VS Code
- 按
Ctrl+Shift+X 打开扩展面板
- 搜索 "BMC Studio"
- 点击安装
手动安装
# 克隆项目
git clone <repository-url>
cd plugin_demo
# 安装依赖
npm install
# 编译插件
npm run compile
# 打包扩展
npm run plugin-package
🛠️ 开发环境
系统要求
- VS Code 1.80.0 或更高版本
- Node.js 16+
- TypeScript 5.8+
快速开始
# 安装开发依赖
npm install
# 启动开发模式
npm run watch
# 运行测试
npm test
# 启动调试 (按 F5 或使用 VS Code 调试配置)
项目结构
plugin_demo/
├── src/ # 源代码
│ ├── extension.ts # 插件主入口
│ ├── codex/ # 核心解析器
│ │ ├── statements.ts # Statements 解析
│ │ ├── processing-flow.ts # ProcessingFlow 解析
│ │ ├── req-body.ts # ReqBody 解析
│ │ └── statement-provider-demo.ts # Provider 实现
│ ├── common/ # 通用工具
│ │ └── json-file.ts # JSON 解析核心
│ └── test/ # 测试套件
├── package.json # 插件配置
├── tsconfig.json # TypeScript 配置
└── webpack.config.js # 打包配置
🧪 测试
我们维护了一套完整的测试体系,确保插件的稳定性和可靠性。
快速测试
# 运行所有测试
npm test
# 运行单元测试
npm run test:unit
# 运行集成测试
npm run test:integration
# 生成覆盖率报告
npm run test:coverage
测试覆盖
- ✅ 501/501 测试通过 (100% 成功率)
- ✅ 单元测试 - 核心逻辑和解析器
- ✅ 集成测试 - VS Code API 集成
- ✅ 端到端测试 - 完整用户流程
测试架构
src/test/
├── fixtures/ # 测试数据
├── unit/ # 单元测试
├── integration/ # 集成测试
├── utils/ # 测试工具
└── README.md # 详细测试文档
详细的测试指南请参考测试文档。
📚 开发指南
添加新的语法支持
- 在
src/codex/ 下创建新的解析器类
- 继承
InterfaceMappingParser 基类
- 实现必要的解析方法
- 在
extension.ts 中注册 Provider
- 添加相应的测试用例
调试技巧
- 使用 VS Code 内置调试器(F5)
- 查看
Output 面板的插件日志
- 使用
console.log 在扩展开发主机中调试
- 利用测试套件快速验证功能
贡献代码
- Fork 项目并创建特性分支
- 确保所有测试通过 (
npm test)
- 遵循现有的代码风格 (
npm run lint)
- 添加适当的测试覆盖
- 提交 Pull Request
📄 许可证
本项目采用LICENSE.txt许可证。
🤝 支持
- 🐛 问题报告: 请在 Issues 中报告 bug
- 💡 功能建议: 欢迎提出新功能想法
- 📝 文档改进: 帮助完善文档和示例
- 🧪 测试贡献: 添加测试用例和场景
📈 版本历史
- v0.0.28 - 移除MDB缓存管理功能(已被其他机制替代),移除侧边栏视图
- v0.0.27 - 批量表达式计算器,双模式切换,用例导入导出,表达式同步
- v0.0.26 - SMC 偏移量计算器,可视化计算与实时解码
- v0.0.19 - SR 文件预览功能,智能文件合并,实时刷新
- v0.0.18 - 管道表达式计算引擎,C风格格式化,完整运算符支持
- v0.0.17 - 重复对象检测,校验功能修复
- v0.0.15 - ReqHeader 引用支持
- v0.0.14 - MDB缓存管理功能(v0.0.28 已移除),基于MDB的悬浮提示(已移除)
- v0.0.13 - SR语言服务器支持,完整测试覆盖
- v0.0.12 - 增强的自动补全,改进的错误检测
- v0.0.11 - 多文档支持,性能优化
- v0.0.10 - Bug修复,悬浮提示优化
- 更早版本 - 参见 CHANGELOG.md
🎉 感谢使用 BMC Studio 插件!
让复杂的 JSON 配置开发变得简单高效。
| |