UCMS Navigator
UCMS Navigator 是面向 UCMS 分层项目和 WPF/MVVM 工作流的 VS Code 导航扩展,重点解决以下问题:
- 在 Entity、Model、Service、Controller、View、ViewModel 之间快速跳转。
- 在 View 与 ViewModel 之间做“同名/同变体”快速切换。
- 在多页面实体中,快速切换 Add/Edit/Detail/List/Page 等不同 UI 文件。
- 兼容主客户端
UCMS.WPF 与附加客户端目录,例如 Client/UCMS.Wpf.Dashboard。
- 默认不采集遥测,不发起外部网络请求。
核心能力
1. 关联文件总览
按 Alt+G 可打开当前实体的全部关联文件列表,覆盖以下层:
- Entity
- Model
- Repository / IRepository
- Service / IService
- ApiService
- Controller
- View
- ViewModel
- Helpers
2. 匹配 View/ViewModel 快速切换
当当前文件是 View 或 ViewModel 时:
- 按
Alt+Shift+V 可直接切到最可能匹配的对端文件。
- 扩展会优先匹配同名变体,例如:
MaterialAddView.xaml → MaterialAddViewModel.cs
MaterialEditViewModel.cs → MaterialEditView.xaml
OeeHistoryViewModel.cs → OeeHistoryView.xaml
EnergyEnvironmentPage.xaml → EnergyEnvironmentViewModel.cs
3. View/ViewModel 选择器
按 Alt+Shift+G 可只查看当前实体的 View 与 ViewModel 文件,适合在多个页面变体之间切换。
4. CodeLens 与状态栏
- View / ViewModel 文件顶部会出现“匹配 View/ViewModel” CodeLens。
- 状态栏在普通文件中显示实体和当前层。
- 当当前文件是 View 或 ViewModel 时,状态栏按钮会直接变成“切换对端文件”。
命令列表
| 命令 |
快捷键 |
说明 |
UCMS: 跳转到关联文件 |
Alt+G |
打开实体关联文件列表 |
UCMS: 切换匹配的 View/ViewModel |
Alt+Shift+V |
直接跳转到最可能匹配的对端文件 |
UCMS: 选择 View/ViewModel |
Alt+Shift+G |
仅查看当前实体的 View 与 ViewModel |
UCMS: 显示实体概览 |
- |
Markdown 方式展示实体全景 |
UCMS: 跳转到 Entity |
- |
直达 Entity |
UCMS: 跳转到 Model |
- |
直达 Model |
UCMS: 跳转到 Service |
- |
直达 Service |
UCMS: 跳转到 Controller |
- |
直达 Controller |
UCMS: 跳转到 Repository |
- |
直达 Repository |
UCMS: 跳转到 View |
- |
直达 View |
UCMS: 跳转到 ViewModel |
- |
直达 ViewModel |
UCMS: 跳转到 ApiService |
- |
直达 ApiService |
识别规则
扩展根据文件名和路径自动识别实体与层,例如:
| 文件名 |
识别结果 |
MaterialEntity.cs |
Entity: Material |
MaterialModel.cs |
Model: Material |
MaterialEditView.xaml |
View: Material |
MaterialEditViewModel.cs |
ViewModel: Material |
EnergyEnvironmentPage.xaml |
View: EnergyEnvironment |
EnergyEnvironmentViewModel.cs |
ViewModel: EnergyEnvironment |
当前已覆盖的 UI 项目目录包括:
UCMS.WPF
Client/UCMS.Wpf.*
本地开发
cd tools/ucms-navigator
npm ci
npm run compile
npm run watch
npm run package
npm run package:vsix
安装 VSIX:
code --install-extension ucms-navigator-0.6.1.vsix
快速发布到 Marketplace
首次发布只需要做一次登录:
cd tools/ucms-navigator
npm run login:marketplace
登录成功后,后续发布直接执行:
cd tools/ucms-navigator
npm run publish:marketplace
如果你只想先生成安装包给内部测试,则继续使用:
npm run package:vsix
发布前提:
- Azure DevOps PAT 作用域至少包含
Marketplace (Manage)。
- PAT 的 Organization 需选择
All accessible organizations。
package.json 中的 publisher 必须与 Marketplace 中已创建的 Publisher ID 一致。
隐私与数据
- 不上传工作区代码、文件内容或项目元数据到任何外部服务。
- 不内置遥测、分析埋点或自动更新逻辑。
- 仅基于当前 VS Code 工作区中的文件名与目录结构做本地导航判断。
许可证
本扩展按 MIT License 分发,详见根目录 LICENSE。
打包与隐私控制
当前 VSIX 打包默认只包含以下文件:
dist/extension.js
images/icon.png
README.md
CHANGELOG.md
LICENSE
package.json
这意味着以下内容不会进入 VSIX:
src/**
node_modules/**
package-lock.json
- 调试目录和临时文件
- 任何工作区源码或本地用户路径
如果你后续准备发布到 Marketplace,建议在真正发布前执行一次 VSIX 内容检查,确保没有新增的敏感文件被打进包内。
| |