Event Jump
在 Electron 等应用中,实现主进程与渲染进程间事件监听的快速跳转

📖 简介
Event Jump 是一款 VS Code 扩展,专为 Electron 等前后分离的应用开发者设计。当你在渲染进程代码中看到 ipcRenderer.invoke("channel-name", params) 时,可以一键跳转到主进程中对应的事件监听代码(如 ipcMain.handle("channel-name", ...)),反之亦然。
核心功能
- ✅ 跨进程代码跳转:基于 channel 名称快速定位事件监听代码
- ✅ 可配置匹配模式:支持自定义正则表达式,适配不同封装方式
- ✅ 预设模式:内置 Electron、Spring Boot、Express 预设
- ✅ 全局事件视图:左侧资源管理器展示所有事件条目
- ✅ CodeLens 跳转链接:编辑区直接显示跳转链接
- ✅ 增量扫描:监听文件变更,实时更新索引
🚀 快速开始
安装
- 打开 VS Code
- 进入扩展面板(
Ctrl+Shift+X)
- 搜索 "Event Jump"
- 点击安装
使用
- 打开 Electron 项目
- 在代码中找到
ipcRenderer.invoke("get-user", params) 或 ipcMain.handle("get-user", ...)
- 使用以下任一方式跳转:
- 点击 CodeLens 链接 "Jump to →"
- 按
Ctrl+Shift+J
- 右键菜单 → "Event Jump: 跳转到对应事件"
- 在左侧 Event Jump 资源管理器中点击条目
⚙️ 配置
基本配置
在 settings.json 或 .vscode/event-jump.json 中配置:
{
// 主进程代码目录
"eventJump.mainProcessDirs": ["src/main", "src/main-process"],
// 渲染进程代码目录
"eventJump.renderProcessDirs": ["src/renderer", "src/render"],
// 预设模式:electron | spring-boot | express | none
"eventJump.presets": "electron",
// 启用注释标记(// EMIT: 和 // ON:)
"eventJump.enableCommentMarkers": true,
// 排除扫描的目录
"eventJump.excludePatterns": [
"**/node_modules/**",
"**/dist/**",
"**/out/**",
"**/.git/**"
]
}
自定义匹配模式
如果项目封装了 IPC 调用方法,可以自定义正则表达式:
{
"eventJump.emitPatterns": [
"ipcRenderer\\.invoke\\s*\\(\\s*['\"`](https://github.com/ELISHELL/event-jump/blob/HEAD/[^'\"`]+)['\"`]",
"window\\.electronAPI\\.\\w+\\s*\\("
],
"eventJump.onPatterns": [
"ipcMain\\.handle\\s*\\(\\s*['\"`](https://github.com/ELISHELL/event-jump/blob/HEAD/[^'\"`]+)['\"`]",
"mainWindow\\.webContents\\.on\\s*\\(\\s*['\"`](https://github.com/ELISHELL/event-jump/blob/HEAD/[^'\"`]+)['\"`]"
]
}
注意:每个正则表达式必须包含且仅包含一个捕获组 (...),用于提取 channel 名称。
预设模式
| 预设名 |
适用场景 |
electron |
Electron 应用(ipcRenderer/ipcMain) |
spring-boot |
Spring Boot 事件监听 |
express |
Express 路由与事件 |
none |
不使用预设,完全自定义 |
📸 截图
TreeView 资源管理器

CodeLens 跳转链接

功能配置

🛠️ 开发与贡献
开发环境搭建
# 克隆仓库
git clone https://github.com/yourusername/event-jump.git
cd event-jump
# 安装依赖
pnpm install
# 编译并监听变化
pnpm run watch
# 运行测试
pnpm test
调试
- 在 VS Code 中打开项目
- 按
F5 启动扩展开发宿主窗口
- 在宿主窗口中打开测试项目
项目结构
event-jump/
├── src/
│ ├── extension.ts # 插件入口
│ ├── config/ # 配置管理
│ │ ├── configManager.ts
│ │ └── presets/ # 预设模式
│ ├── scanner/ # 扫描引擎
│ │ ├── scannerEngine.ts
│ │ ├── fileWalker.ts
│ │ └── patternMatcher.ts
│ ├── index/ # 事件索引
│ │ └── eventIndex.ts
│ ├── resolver/ # 跳转解析
│ │ └── jumpResolver.ts
│ ├── ui/ # UI 组件
│ │ ├── treeProvider.ts
│ │ ├── treeItems.ts
│ │ └── codeLensProvider.ts
│ ├── watcher/ # 文件监听
│ │ └── fileWatcher.ts
│ └── types/ # 类型定义
│ └── index.ts
├── test/ # 测试用例
├── doc/ # 文档
└── package.json
贡献指南
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature)
- 提交更改 (
git commit -m 'Add some AmazingFeature')
- 推送到分支 (
git push origin feature/AmazingFeature)
- 创建 Pull Request
📝 更新日志
v0.0.3 (2026-07-23)
✨ 新增功能
- 支持自定义文件后缀匹配策略
- 预设配置与用户自定义配置合并机制
🔧 优化改进
- 编译打包工具升级为
esbuild,使用 pnpm vsce:package 即可打包
- 预设生效模式改为混合模式:优先使用预设,再合并用户自定义配置
- 预设文件位置调整,解决打包后预设文件丢失问题
- 自定义后缀匹配策略:用户自定义 > 预设配置 > 默认配置
- 压缩 Logo 图片大小
- 新增 LICENSE 文件
🔮 未来计划
- [ ] 资源管理器右键菜单:支持快速添加到 render/main/exclude
- [ ] 预设管理功能:增加 UI 面板和 JSON Schema 支持
- [ ] 预设导入功能
- [ ] 新增vscode拓展开发预设 vsce.json
v0.0.2 (2026-07-22)
✨ 新增功能
- 支持 Channel 重命名
- 支持重复监听检测
- 支持未匹配事件检测
- 多种跳转渲染模式(CodeLens / 行内装饰 / 两者同时)
- 中文/英文双语支持
- UI 视图增加配置跳转入口
🔧 优化改进
- 行内装饰支持自定义提示颜色
- UI 增加设置按钮,点击打开 VS Code 配置管理器
- UI 增加"帮助与反馈"入口,支持快速访问官方资源
✅ 已完成计划
- [x] Channel 重命名同步
- [x] 多语言支持
- [x] 多种跳转渲染模式
- [x] 行内装饰自定义颜色
- [x] UI 设置按钮
- [x] UI 帮助与反馈入口
🔮 未来计划
- [ ] 资源管理器右键菜单:支持快速添加到 render/main/exclude
v0.0.1 (2026-07-21)
✨ 初始版本
- 支持 Electron 事件跳转
- 支持 TreeView 和 CodeLens
- 支持自定义匹配模式
- 支持增量扫描
✅ 已完成计划
- [x] 双向跳转(从 on 端跳转到所有 emit 端)
- [x] 未匹配事件检测
- [x] 重复监听检测
- [x] 多预设支持
🔮 未来计划
- [ ] Channel 重命名同步
- [ ] 多语言支持
- [ ] 多种跳转渲染模式
- [ ] 行内装饰自定义颜色
- [ ] 资源管理器右键菜单
📄 许可证
MIT © fanle
🙏 致谢
👏 赞赏
Enjoy! 🎉
如果你有任何问题或建议,欢迎在 GitHub 上反馈。