Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Proto Definition JumpNew to Visual Studio Code? Get it now.
Proto Definition Jump

Proto Definition Jump

sladezhang

|
15 installs
| (0) | Free
VSCode extension for jumping to definitions in Protocol Buffer files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Proto Definition Jump - VSCode Extension

一个用于Protocol Buffer (proto)文件的VSCode插件,提供定义跳转、符号搜索和引用查找功能。

功能特性

  • 定义跳转: 按住Ctrl(Cmd)+点击或使用F12快捷键跳转到消息、服务、枚举、RPC方法等的定义
  • 定义跳转: 按住Ctrl(Cmd)+点击或使用F12快捷键跳转到消息、服务、枚举、RPC方法等的定义
  • 🚀 索引缓存: 智能预索引和缓存系统,大幅提升大项目中的跳转性能(5-20倍速度提升)
  • 🔄 C++到Proto跳转: 在C++文件中右键pb消息类型,直接跳转到对应的proto定义
  • 跨文件跳转: 支持跨文件的定义跳转和import解析
  • 符号搜索: 在文档或工作区中快速搜索proto符号
  • 引用查找: 查找符号的所有引用位置
  • Import文件跳转: 支持跳转到import语句中引用的proto文件
  • 智能解析: 支持包名、嵌套消息等复杂结构的解析
  • 可配置路径: 支持配置proto文件的基础路径,灵活处理复杂项目结构
  • 🎨 语法高亮: 完整的proto语法高亮支持,包括关键字、类型、注释等
  • 🌈 语义高亮: 智能识别定义和引用,提供更精确的颜色标记
  • 🎭 主题支持: 内置专用主题,兼容现有VSCode主题

支持的跳转类型

Proto文件内跳转

  • 消息类型 (message)
  • 服务定义 (service)
  • 枚举类型 (enum)
  • RPC方法 (rpc)
  • 字段引用
  • Import文件

C++到Proto跳转

  • pb消息类型变量声明
  • pb消息类型指针/引用
  • 函数参数中的pb消息类型
  • 智能指针包装的pb消息类型

安装方法

从源码构建

  1. 克隆或下载本项目
  2. 在项目根目录运行以下命令:
# 安装依赖
npm install

# 编译TypeScript
npm run compile

# 打包插件
npm install -g vsce
vsce package
  1. 在VSCode中安装生成的.vsix文件:
    • 打开VSCode
    • 按Ctrl+Shift+P打开命令面板
    • 输入"Extensions: Install from VSIX..."
    • 选择生成的.vsix文件

使用方法

  1. 在VSCode中打开包含proto文件的项目
  2. 打开任意.proto文件
  3. 将光标放在要跳转的符号上
  4. 使用以下方式之一进行跳转:
    • 按F12键
    • 按Ctrl(Cmd)+点击
    • 右键选择"Go to Definition"
    • 使用命令面板执行"Proto: Go to Definition"

C++到Proto跳转使用方法

  1. 在C++文件中,将光标放在pb消息类型上
  2. 右键选择"Jump to Proto"
  3. 插件会自动跳转到对应的proto文件定义

支持的C++代码模式:

mmgamecenterpclogic::LoginReq req;           // 直接声明
mmgamecenterpclogic::LoginReq* req_ptr;      // 指针声明
std::unique_ptr<mmgamecenterpclogic::LoginReq> req_uptr;  // 智能指针
void HandleLogin(const mmgamecenterpclogic::LoginReq& req);  // 函数参数

示例

项目包含了示例proto文件,展示了支持的各种跳转场景:

  • examples/user.proto - 用户服务定义
  • examples/common.proto - 通用消息定义
  • examples/order.proto - 订单服务定义(包含跨文件引用)

开发

项目结构

├── src/
│   ├── extension.ts          # 插件主入口
│   ├── protoParser.ts        # Proto文件解析器
│   ├── definitionProvider.ts # 定义跳转提供器
│   └── symbolProvider.ts     # 符号搜索提供器
├── examples/                 # 示例proto文件
├── package.json             # 插件配置
└── tsconfig.json           # TypeScript配置

核心组件

  • ProtoParser: 解析proto文件,提取消息、服务、枚举等定义
  • ProtoDefinitionProvider: 提供定义跳转功能
  • ProtoDocumentSymbolProvider: 提供文档符号列表
  • ProtoWorkspaceSymbolProvider: 提供工作区符号搜索
  • ProtoReferenceProvider: 提供引用查找功能

调试

  1. 在VSCode中打开项目
  2. 按F5启动调试,会打开一个新的"Extension Development Host"窗口
  3. 在新窗口中打开包含proto文件的项目进行测试

已知限制

  • 目前仅支持proto3语法
  • 不支持复杂的import路径解析(如通过protoc的-I参数指定的路径)
  • 不支持proto文件的语法高亮(建议配合其他proto插件使用)

贡献

欢迎提交Issue和Pull Request来改进这个插件。

许可证

MIT License

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