TMS Copilot
一款专为腾讯出行服务(TMS)团队打造的 VSCode 效率提升插件

✨ 功能特性
📋 1. TAPD 任务集成
快速获取 TAPD 任务和 Bug 信息,自动生成规范的 Git Commit Message。
- 快捷操作:在 Git 源代码管理面板点击 TAPD 图标
- 智能提取:自动获取任务标题、类型、团队归属等信息
- 规范格式:生成符合团队规范的 commit message
⚡ 2. 代码注释对齐
一键对齐选中代码的行尾注释,让代码更加整洁易读。
- 智能对齐:自动计算最佳对齐位置
- 快捷使用:选中代码 → 右键菜单 → "对齐行尾注释"
- 支持语言:JavaScript、TypeScript
// 对齐前
const name = "Alice"; // 姓名
const age = 25; // 年龄
const city = "Beijing"; // 城市
// 对齐后
const name = "Alice"; // 姓名
const age = 25; // 年龄
const city = "Beijing"; // 城市
🔗 3. Apollo 配置快速跳转
选中 Apollo 配置键名,直接跳转到对应的配置管理页面。
- 一键跳转:选中配置名 → 右键 → "跳转到指定 apollo 配置"
- 多模块支持:自动识别不同业务模块(能源、活动、打车、顺风车等)
- 可配置:支持自定义 Apollo Base URL 和模块映射
支持的业务模块:
- 通用模块、基础、能源、活动
- 打车、代驾、顺风车、跑腿
- 车主服务、看车、商业化广告
- 交易中台、运营活动、聚合货运等
🖼️ 4. 图片上传 COS
快速上传图片到腾讯云 COS 并自动生成外链。
- 快捷键:
- Windows/Linux:
Ctrl + Alt + U
- macOS:
Cmd + Alt + U
- 智能压缩:支持 TinyPNG 压缩(需配置 API Key)
- 自动插入:生成的图片链接自动插入到光标位置
🧩 5. 小程序组件快速创建
在资源管理器中快速创建微信小程序组件(包含 .wxml/.less/.ts/.json 四个文件)。
- 右键创建:文件夹右键 → "创建 Miniprogram Component"
- 完整模板:自动生成组件完整结构
- 开箱即用:Component() 模板已配置好
生成的文件结构:
your-component/
├── index.wxml # 模板文件
├── index.less # 样式文件
├── index.ts # 逻辑文件(Component 结构)
└── index.json # 配置文件
📊 6. 埋点可视化分析(⭐ 核心功能)
强大的埋点分析工具,可视化呈现页面和组件的埋点信息。
主要特性:
📁 多维度分析
- 单文件分析:右键 JS/TS 文件 → "📊 分析文件埋点"
- 批量分析:右键文件夹 → "📁 分析目录埋点"
🎯 埋点类型识别
- ✍️ 手动埋点:识别
report()、report2() 等埋点方法
- 🤖 全埋点:自动提取页面/组件事件绑定(bind:tap、catch:tap 等)
- 生命周期:Page/Component 生命周期函数埋点
📦 依赖分析
- 自动分析组件依赖关系(通过 usingComponents)
- 递归提取依赖组件的埋点信息
- 支持 import 文件的埋点追踪
🖥️ 可视化界面
- 树形目录导航:清晰展示文件和组件层级
- 埋点详情展示:代码片段、参数说明、字段映射
- 智能搜索:关键词搜索埋点名称、参数、说明
- 一键展开/收起:批量管理埋点项显示状态
🎨 交互功能
- 精确跳转:点击"跳转代码"按钮,光标定位到埋点代码位置(含行号)
- 文本复制:埋点名称支持选中复制
- SQL 生成:一键复制埋点查询 SQL(自动填充事件名、页面路径等)
- 代码展示:显示 Data 定义和 Properties 定义
📈 统计汇总
- 实时统计手动埋点和全埋点数量
- 支持多文件批量分析和汇总
- 分类展示页面埋点和组件埋点
使用场景:
- 📝 埋点检查:快速检查页面是否漏埋点
- 🔍 埋点审查:Review 代码时查看埋点实现
- 📊 数据分析:生成 SQL 查询埋点数据
- 📚 埋点文档:导出埋点清单供团队参考
🎨 7. 条件编译代码片段
内置条件编译注释的快速插入功能,支持多种文件类型。
- 快速插入:
@if - 条件编译 if 语句
@el - 条件编译 else 语句
@ifn - 条件编译 if not 语句
@in - 条件编译插入变量
- 多语言支持:
- JavaScript/TypeScript/JSON/WXS:
// @if APP_NAME='xxx'
- HTML/WXML:
<!-- @if APP_NAME='xxx' -->
- CSS/LESS/SCSS:
/* @if APP_NAME='xxx' */
使用示例:
// 输入 @if,自动生成:
// @if APP_NAME='sinan'
console.log('司南小程序专用代码');
// @endif
// 输入 @in,自动生成:
const version = '/* @echo VERSION */';
🔌 三方集成
语法高亮支持
插件内置了对特殊语法的高亮支持,提升代码可读性:
📝 条件编译注释高亮
自动识别并高亮显示条件编译注释块,帮助开发者快速识别平台特定代码。
支持的注释格式:
- JavaScript/TypeScript:
// @if, // @else, // @endif
- HTML/WXML:
<!-- @if -->, <!-- @else -->, <!-- @endif -->
- CSS/LESS:
/* @if */, /* @else */, /* @endif */
高亮特性:
- 🎨 条件编译块使用特殊颜色标识
- 🔍 快速定位不同平台的专属代码
- 📦 支持嵌套的条件编译块
实现机制:
- 基于 VSCode Decoration API 实时渲染
- 自动监听文件变化和主题切换
- 支持自定义高亮颜色配置
🎨 8. TMS-UI 代码片段
内置 TMS-UI 组件库代码片段,提升开发效率。
- 快速插入:输入组件名前缀自动提示
- 支持语言:JavaScript、TypeScript、HTML、WXML
🚀 安装使用
安装方式
- 下载
.vsix 文件
- 在 VSCode 中按
Ctrl+Shift+P / Cmd+Shift+P
- 输入
Extensions: Install from VSIX
- 选择下载的
.vsix 文件
配置项
在 VSCode 设置中搜索 tms-copilot:
{
// TAPD 团队映射配置
"tms-copilot.tapdMapping": {
"团队A": "team-a",
"团队B": "team-b"
},
// TinyPNG API Key(用于图片压缩)
"tms-copilot.tinypngKey": "your-tinypng-api-key",
// Apollo 配置基础 URL
"tms-copilot.apolloBaseURL": "https://mapollo.woa.com/#/26fdbf3/business/4",
// Apollo 模块配置
"tms-copilot.apolloModules": {
"modules": { "name": "通用模块", "id": "3" },
"energy": { "name": "能源", "id": "5" },
"takecar": { "name": "打车", "id": "12" }
// ... 更多模块配置
}
}
⌨️ 快捷键
| 功能 |
Windows/Linux |
macOS |
| 上传图片到 COS |
Ctrl + Alt + U |
Cmd + Alt + U |
📦 依赖说明
- axios: HTTP 请求库(TAPD API 调用)
- cos-nodejs-sdk-v5: 腾讯云对象存储 SDK
- gogocode: AST 代码解析(埋点分析)
- sharp: 图片处理
- selenium-webdriver: 浏览器自动化(身份认证)
🤝 参与贡献
欢迎提交 Issue 和 Pull Request!
开发指南
# 克隆仓库
git clone https://git.woa.com/yurini/tms-copilot.git
# 安装依赖
npm install
# 运行 ESLint
npm run lint
# 发布新版本
npm run publish
📄 许可证
内部使用,版权归腾讯出行服务团队所有。
📮 联系方式
让开发更高效,让协作更顺畅 🚀
Made with ❤️ by TMS Team