# proto-code **Repository Path**: liuqin2014/proto-code ## Basic Information - **Project Name**: proto-code - **Description**: No description available - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-21 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Proto Code Generator 这是一个 Visual Studio Code 扩展,允许您通过右键菜单从 `.proto` (Protocol Buffer) 文件生成代码。 ## 功能 - 在资源管理器中右键单击任何 `.proto` 文件 - 选择 "Generate Code from Proto" 选项 - 插件将自动解析 `.proto` 文件并生成相应的代码 ## 如何使用 1. 在 VS Code 中打开包含 `.proto` 文件的项目 2. 在资源管理器中找到一个 `.proto` 文件 3. 右键单击该文件 4. 在上下文菜单中选择 "Generate Code from Proto" 5. 从弹出的选项中选择要生成的代码类型: - JavaScript Classes - TypeScript Interfaces - Python Dataclasses - Java Classes with protoc - Custom Script(使用自定义脚本) 6. 插件将在同一目录下生成相应类型的文件 ## 测试插件功能 ### 方法一:在开发模式下运行插件(推荐) 1. 克隆或下载此项目到本地 2. 在 VS Code 中打开项目文件夹 3. 按 `F5` 键或点击"运行和调试"面板中的"启动调试"按钮 4. 这将打开一个新的 VS Code 窗口(扩展开发主机),其中已加载了插件 5. 在新窗口中打开一个包含 `.proto` 文件的项目 6. 右键单击 `.proto` 文件并选择 "Generate Code from Proto" 7. 选择想要生成的代码类型进行测试 ### 方法二:打包并安装插件 1. 安装 vsce 工具: ```bash npm install -g @vscode/vsce ``` 2. 在项目根目录下打包插件: ```bash vsce package ``` 或者,如果遇到问题可尝试: ```bash npx vsce package ``` 3. 打包完成后会生成一个 `.vsix` 文件,如 `proto-code-0.0.1.vsix` 4. 在 VS Code 中,使用 `Ctrl+Shift+P` 打开命令面板,输入 "Extensions: Install from VSIX" 5. 选择该命令并选取生成的 `.vsix` 文件 6. 重启 VS Code 后即可使用插件 ## Git Bash 环境支持 此插件针对在 Git Bash 环境中运行进行了优化: - 所有外部命令都在 `bash.exe` shell 中执行(在 Windows 上) - 跨平台路径处理使用 Node.js 的 `path` 模块 - 命令字符串构建遵循 Linux 模式 确保系统满足以下要求: 1. 安装 Git for Windows 并将其添加到 PATH 2. 对于 Java 代码生成,需要安装 `protoc` 并将其添加到 PATH ## 示例 给定一个名为 `sample.proto` 的文件: ```proto syntax = "proto3"; message Person { string name = 1; int32 id = 2; string email = 3; } message AddressBook { repeated Person people = 1; } ``` ### JavaScript Classes 输出 插件将生成一个名为 `sample.js` 的文件: ```javascript // Auto-generated from sample.proto class Person { constructor() { this.name = null; // string this.id = null; // int32 this.email = null; // string } } class AddressBook { constructor() { this.people = []; // repeated } } module.exports = { Person, AddressBook, }; ``` ### TypeScript Interfaces Output 插件将生成一个名为 `sample.ts` 的文件: ```typescript // Auto-generated from sample.proto export interface IPerson { name?: string; id?: number; email?: string; } export class Person implements IPerson { name?: string; id?: number; email?: string; constructor(data?: IPerson) { if (data) { this.name = data.name; this.id = data.id; this.email = data.email; } } } export interface IAddressBook { people?: any[]; } export class AddressBook implements IAddressBook { people?: any[]; constructor(data?: IAddressBook) { if (data) { this.people = data.people; } } } ``` ## 自定义脚本支持 您可以配置自己的脚本来处理 `.proto` 文件: 1. 创建一个脚本文件(可以是任何语言如 Python、Bash 等) 2. 在 VS Code 设置中配置 `proto-code.customScriptPath` 指向您的脚本 3. 当选择 "Custom Script" 选项时,插件将执行您的脚本并传入 `.proto` 文件路径作为参数 示例设置: ```json { "proto-code.customScriptPath": "/path/to/your/script.py" } ``` 示例 Python 脚本 (`script.py`): ```python import sys import os # 获取传入的 .proto 文件路径 proto_file = sys.argv[1] # 处理文件 print(f"Processing {proto_file}") # 在此处添加您的处理逻辑 # ... print("Done!") ``` ## 安装 1. 将此文件夹复制到您的 VS Code 扩展目录中,或者 2. 在终端中运行 `npm install` 安装依赖 3. 在 VS Code 中按 F5 开始调试模式,或者 4. 运行 `npm install -g vsce` 并使用 `vsce package` 打包成 `.vsix` 文件进行安装 ## 支持的平台 此扩展完全支持 Windows 上的 Git Bash 环境。当您配置了自定义脚本时,它将在 Git Bash 中执行命令。