Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Event JumpNew to Visual Studio Code? Get it now.
Event Jump

Event Jump

fanle

|
2 installs
| (0) | Free
Quick jump between event emitters and listeners in Electron and similar applications
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Event Jump

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

Version Rating Installs


📖 简介

Event Jump 是一款 VS Code 扩展,专为 Electron 等前后分离的应用开发者设计。当你在渲染进程代码中看到 ipcRenderer.invoke("channel-name", params) 时,可以一键跳转到主进程中对应的事件监听代码(如 ipcMain.handle("channel-name", ...)),反之亦然。

核心功能

  • ✅ 跨进程代码跳转:基于 channel 名称快速定位事件监听代码
  • ✅ 可配置匹配模式:支持自定义正则表达式,适配不同封装方式
  • ✅ 预设模式:内置 Electron、Spring Boot、Express 预设
  • ✅ 全局事件视图:左侧资源管理器展示所有事件条目
  • ✅ CodeLens 跳转链接:编辑区直接显示跳转链接
  • ✅ 增量扫描:监听文件变更,实时更新索引

🚀 快速开始

安装

  1. 打开 VS Code
  2. 进入扩展面板(Ctrl+Shift+X)
  3. 搜索 "Event Jump"
  4. 点击安装

使用

  1. 打开 Electron 项目
  2. 在代码中找到 ipcRenderer.invoke("get-user", params) 或 ipcMain.handle("get-user", ...)
  3. 使用以下任一方式跳转:
    • 点击 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 资源管理器

1784803913475

CodeLens 跳转链接

1784804050498

功能配置

1784804003029


🛠️ 开发与贡献

开发环境搭建

# 克隆仓库
git clone https://github.com/yourusername/event-jump.git
cd event-jump

# 安装依赖
pnpm install

# 编译并监听变化
pnpm run watch

# 运行测试
pnpm test

调试

  1. 在 VS Code 中打开项目
  2. 按 F5 启动扩展开发宿主窗口
  3. 在宿主窗口中打开测试项目

项目结构

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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 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


🙏 致谢

  • VS Code Extension API
  • Electron Documentation

👏 赞赏


Enjoy! 🎉

如果你有任何问题或建议,欢迎在 GitHub 上反馈。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft