中台开发辅助工具:以当前目录为范围,快速定位模块内部结构。
- 当前目录代码块:侧边栏列出当前文件所在目录的文件,展开文件显示大纲——顶层符号(class / interface / enum / function / type /
const函数)与#region代码块,Vue 为<template>/<script>/<style>块,点击跳转;支持模糊搜索、批量展开/收起 - 函数流步骤:
// #steps 名称罩在数组字面量上方,大纲里展开成一组步骤,点击跳到对应那一行(见下方「函数流步骤」) - 业务名标注:文件名是编号时(
210302.service.ts),从文件里的new Logger(['云财务', '天财供应链', '门店采购入库', '服务'])提取业务名显示在文件名右侧,搜索也能按业务名匹配 - 按业务名打开文件:面板标题栏最左的罗盘图标(或命令面板「模块罗盘:按业务名打开文件」),列出全工作区所有带业务名的文件,扁平一行一个、按目录分段,输入
开票或730102都能命中 - 代码片段:保存常用代码片段(支持分组),单击复制到剪贴板
代码片段随 Settings Sync 同步到你的 Microsoft / GitHub 账号,请勿在片段里保存 token、密码、连接串等敏感信息。
使用
- 活动栏点击"模块罗盘"图标
- 面板顶部两行:标题行右侧是当前所属项目的完整路径,下面一行是当前目录 / 文件数 / 搜索状态
- 列表范围(工具栏最右侧按钮,按工作区记住):
- 默认 只显示已打开的文件:当前目录里已在标签栏打开的文件,不限扩展名(
.md/.scss里的#region同样能导航) - 点「文件夹」按钮切到 显示目录内全部文件:当前目录下的 .ts/.tsx/.js/.jsx/.vue,可以浏览还没打开的文件
- 默认 只显示已打开的文件:当前目录里已在标签栏打开的文件,不限扩展名(
- 左键点文件名:切换展开 / 收起(收起时打开并展开,展开时收起);也可右键菜单「收起」
- 搜索(工具栏放大镜):在当前目录内模糊匹配文件名 / 业务名 / 代码块名,例如
usrsvc命中UserService - 按业务名打开文件(工具栏最左罗盘图标):全工作区范围,跟上面那个搜索不是一回事
- 资源管理器右键目录 →「在模块罗盘中显示」:把面板指到那个目录(会自动切到"全部文件");激活任意编辑器后恢复跟随
- 代码块写法:
// #region 名称...// #endregion(也支持<!-- -->、/* */注释写法)
函数流步骤
一个数组把流程列出来的写法(步骤列表),大纲里以前只能看到外层 #region。在数组上方加一行标记就能展开:
// #steps 对账流程
const 步骤列表: Step[] = [
{ 步骤名: '查询订单发票列表', 执行: 'S210103Service.查询订单发票列表' },
{ 步骤名: '查询物料关系数据', 执行: 'S210103Service.查询物料关系数据' },
]
大纲里显示成:
▾ 订单发票对账列表(10004)
▾ 对账流程 L18 - L29
查询订单发票列表 查询订单发票列表 · L20
查询物料关系数据 查询物料关系数据 · L21
- 标记只写一次,步骤名不用重复写——子节点从数组元素里抽
- 标记是开关:没有
#steps的数组一律不解析,不会误伤普通数组 - 数组必须从标记之后的第一个代码行开起(空行、纯注释行会跳过)
- 右侧灰字取
执行的方法名(S210103Service.查询订单发票列表→查询订单发票列表,前缀整组都一样,去掉更省横向空间);取不到就只显示行号 - 一个步骤拆成多行写也认;
// #steps后面不写名称显示为(未命名) - 注释写法跟
#region一致,/* #steps 名称 */也认。不需要#endsteps,范围按数组的方括号配对算 - 步骤名参与搜索,跟代码块名一样能模糊匹配
三个词都能改(设置里搜 模块罗盘):
| 设置项 | 默认值 | 作用 |
|---|---|---|
regionNavigator.stepsMarker |
#steps |
标记词,可用中文(#流程) |
regionNavigator.stepNameField |
步骤名 |
节点名取哪个字段 |
regionNavigator.stepDescField |
执行 |
右侧说明取哪个字段 |
业务名约定
插件只认这个形状,方括号里写什么完全由你决定:
private logger: Logger = new Logger(`${['云开票', '开票管理', '账单开票', '服务'].join('-')}`);
// → 业务名:云开票-开票管理-账单开票
- 段数任意;末尾的
'服务'会被去掉 - 不裹模板字符串直接写
new Logger(['云开票', '账单开票'])也认 - 必须是
new Logger(+ 数组字面量:传变量、带...展开、字符串拼接都读不到 - 只扫文件前 60 行
- 不按文件名后缀筛。
.service.ts/.platform.ts/.controller.ts/.task.ts一视同仁,扫全部.ts后按有没有业务名收——新增后缀不用改插件 - 目录分段的组名 = 组内成员业务名第一段全部一致时的那一段。不一致就不显示组名(说明目录里有不合约定的文件)
- 命令面板「模块罗盘:列出待补业务名的文件」列出有导出类、也提到了
Logger、但没解析出业务名的文件
绑快捷键
按业务名打开文件 默认不占键位。要绑的话在 keybindings.json 里加:
{ "key": "ctrl+alt+p", "command": "regionNavigator.openByLabel" }