Open Code Review 项目解析知识图谱 / 分组目录 / 集成生态 / VSCode 扩展

VSCode 扩展

集成生态高级工具G-E · 集成生态

What · 是什么

React webview(侧边栏/配置面板/评论面板)+ CliService 封装,i18n en/zh,webpack+jest
Open Code Review 提供 VSCode 官方扩展,代码位于仓库 extensions/vscode/ 目录,面向编辑器内审查场景
UI 层基于 React webview 实现,包含三个 Provider:SidebarProvider(侧边栏)、ConfigPanelProvider(配置面板)、CommentProvider(评论视图),构成扩展的主要交互界面
服务层包含多个模块:CliService(封装 ocr CLI 调用并支持取消操作)、ConfigService(配置管理与读取)、ReviewSession(审查会话状态管理)、GitService(git 相关能力,如获取 diff/提交信息)
支持国际化(i18n),内置 en(英文)与 zh(中文)两种语言资源
工程体系采用 webpack 打包 + jest 测试,代码组织为典型的前端工程结构
作为编辑器集成入口,与 CLI、Skill、各 Agent 插件并列,覆盖「不想离开 IDE」的用户群体

Why · 为什么

原理 · Principle

大量开发者习惯在编辑器内完成从编码到审查的全流程,VSCode 扩展降低工具切换成本,审查结果直接呈现在 IDE 上下文中

React webview + Provider 分层(Cli/Config/ReviewSession/Git 服务拆分)支撑起配置、会话、取消等交互细节,比纯终端体验更完整

CliService 支持取消操作,说明设计上考虑了大范围审查的可中止性,避免阻塞用户

i18n en/zh 双语言满足中英文用户群体,降低出海/国内团队的使用门槛

webpack+jest 工程化保证扩展可构建、可测试、可持续维护,适合长期演进

How · 怎么做

前置条件:安装 ocr CLI 并配置 API Key(与 CLI 用法一致),安装 VSCode
从仓库获取扩展产物:构建 extensions/vscode/(npm install 后执行构建脚本,webpack 打包生成 .vsix)或获取官方发布的 vsix 包
安装扩展:在 VSCode 扩展面板中选择「从 VSIX 安装…」并选择打包产物,或按官方说明安装
打开配置面板(ConfigPanelProvider):通过侧边栏/命令入口进入,配置 ocr 命令路径、模型/API Key 等参数(ConfigService 持久化)
在侧边栏(SidebarProvider)中选择审查目标(文件/目录/提交),点击触发审查
审查执行由 CliService 封装调用,支持取消;审查过程中 ReviewSession 维护会话状态,如中途取消可保留进度
审查结果通过 CommentProvider 以评论/注解形式展示在代码中,用户可就地查看问题定位
涉及 git 上下文(如审查某次提交的 diff)时由 GitService 提供支持;验证:对单个文件发起一次审查,确认 webview 正常展示结果

案例 · Cases

代表性案例
开发者在 VSCode 中改完代码后,从侧边栏一键触发当前文件审查,结果以代码评论形式呈现,直接定位问题行
提交前审查:通过 GitService 获取待提交 diff,在提交动作前跑一轮审查并把结果留在评论视图,作为合并闸门
大范围审查中途发现范围不对:利用 CliService 的取消能力中止审查,调整范围后重新发起,避免浪费计算资源

反模式 · Anti-patterns

正反实例论证 · Evidence

正例 · Pro
先配置后审查,webview 全链路可用
# 打开配置面板(ConfigPanelProvider)配置 ocr 命令路径 + 模型/API Key# 侧边栏选择目标 → 触发审查 → CommentProvider 展示
首次使用先在配置面板完成 ocr 路径与 Key 配置(ConfigService 持久化),再从侧边栏发起审查;CliService 封装调用、ReviewSession 管理会话、结果以评论形式就地展示。
反例 · Con
跳过配置直接审查,点击无反应
# 未配置 CLI 路径/Key侧边栏点击审查 → CliService 找不到可执行文件,失败
不通过 ConfigPanel 配置 ocr 命令路径与 Key,CliService 找不到可执行文件或凭证,审查表现为点击无反应或报错;首次使用必须先完成配置。
正例 · Pro
大范围审查用取消能力兜底
# 审查中发现范围不对触发取消 → CliService 中止子进程 → ReviewSession 保留进度
CliService 支持取消操作:大范围审查发现范围不对时可随时中止,ReviewSession 保留会话状态,调整范围后重新发起,避免浪费计算资源。
反例 · Con
不构建直接加载源码目录
# 直接打开 extensions/vscode/ 源码目录webpack 产物缺失 → 扩展加载失败
扩展需要 webpack 构建产物(或 vsix 包)才能加载,直接加载源码目录会失败;应先 npm install 并执行构建(jest 测试通过后打包)。

实践资产 · Assets

文档
官方中文 README(定位/基准/设计理念/快速开始)
README.zh-CN.md · 12231 B

相关边