- data/demo-pmd 全量入库(26 源文件 + pom/mvnw/lib/reports),.gitignore 排除 target/ - 归档 demo-pmd 实测覆盖率报告(279/279 全覆盖)至 reports/ - 删除 4 份覆盖率报告中的后续建议/实测进度总览(全部实测已收官) - 修复 Windows spawn .cmd/.bat EINVAL(auxClasspath.ts 经 cmd.exe /d /s /c 间接执行)
vscode-code-reviewer · 净码特工 (Code Purifier)
项目性质:新规(从零开发的全新作品)
AI 驱动的代码审查与规范检查一体化 VS Code 插件。集成 ESLint、Stylelint、PMD、SQLFluff 等多种 linter,并支持 AI 辅助审查与自动修复。
项目概述
「净码特工 (Code Purifier)」是一款面向企业级多语言代码库的一体化代码审查与规范检查 VS Code 扩展。它将传统静态检查(ESLint、Stylelint、PMD、SQLFluff)与 AI 大模型审查深度融合,覆盖 JavaScript、TypeScript、Java、JSP、HTML、CSS、SQL、PL/SQL 八类语言,提供一键审查、方法级审查、AI 自动修复与修复预览、报告导出、自定义规则导入等能力,并内置 Webview 面板实现"配置—审查—修复—导出"的闭环体验。
效果总结(核心指标摘要)
待补充:请填写提效/效果类核心指标摘要(新规项目须提供对比数据证明价值),例如:单文件平均审查耗时、AI 修复准确率、缺陷检出率、规则覆盖率等基线 vs 提效后对比。
| 指标 | 基线 | 提效后 | 提升幅度 |
|---|---|---|---|
| (示例)单文件审查耗时 | 待填 | 待填 | 待填 |
| (示例)AI 修复采纳率 | — | 待填 | 待填 |
| (示例)规则检出覆盖率 | 待填 | 待填 | 待填 |
团队分工
待补充:请如实填写团队成员及分工。
| 成员 | 分工 |
|---|---|
| 待填 | 待填 |
规模与技术难度自我评估
- 代码规模:源码约 65 个 TypeScript 文件、约 1.1 万行,按 17 个模块分层组织(
activation/adapters/ai/config/diagnostics/fix/i18n/jsp/merger/orchestrator/panel/rules/scope/services/types/utils/views)。 - 技术难度:(整体偏高)涉及多 linter 统一适配层抽象、多 AI 供应商动态注册(Provider 策略模式 + 运行期注册表)、AI 修复链路(生成—校验—预览—快照撤销)、Office 文档(Word/Excel/PPT)规则导入解析、PMD 的 Java 辅助类路径探测、SQLFluff 方言映射等跨语言、跨进程、跨服务的复杂工程问题。
- 可运行性:依赖清单与锁文件(
package.json/package-lock.json)随仓库提供,源码经npm install && npm run compile即可构建,按F5启动调试。
功能特性
- 一键运行代码审查
- 选中代码片段 / 单个方法审查
- Webview 面板展示审查结果与 AI 审查详情
- 自动修复(含 AI 修复、修复预览)
- 报告导出
- 自定义规则管理与导入(Word / Excel / PPT / Markdown / TXT / YAML)
- 支持语言:JavaScript、TypeScript、Java、JSP、HTML、CSS、SQL、PL/SQL
- 多 AI 供应商(DeepSeek / OpenAI / Gemini / Claude / 腾讯混元 / 智谱 / 月之暗面 / 阿里通义)
- 方法级 CodeLens 审查按钮、编辑器波浪线标记
运行环境要求
| 组件 | 要求 |
|---|---|
| VS Code | ^1.120.0 |
| Node.js | 构建源码需要(打包产物无需) |
| Java | 检查 Java / JSP 需要,java 命令需在 PATH 中 |
| SQLFluff | 检查 SQL / PL/SQL 需要,sqlfluff 命令需在 PATH 中 |
| ESLint / Stylelint | 随插件内置,无需单独安装 |
PMD 与内置规则集通过 npm run download-pmd 获取(默认位于 jars/pmd)。
安装
方式一:从 VSIX 安装(端用户)
- 安装 VS Code 1.120 或更高版本。
- 安装 VS Code 扩展依赖环境(Java、SQLFluff,见上文运行环境要求)。
- 命令行安装:
或在 VS Code 扩展面板点击右上角
code --install-extension vscode-code-reviewer-1.3.0.vsix...→ 「从 VSIX 安装…」,选择生成的.vsix文件。
方式二:从源码构建安装(开发者)
git clone <repo-url>
cd vscode-code-reviewer
npm install
npm run download-pmd # 下载 PMD jar(可选,需要 PMD 时执行)
npm run compile # TypeScript 编译
按 F5 启动 Extension Development Host 进行调试。
运行方法
端用户
| 操作 | 说明 |
|---|---|
Ctrl+Shift+R |
运行代码审查(当前文件) |
命令面板 → Code Purifier: 审查选中代码 |
仅审查选中的代码 |
命令面板 → Code Purifier: 审查此方法 |
审查光标所在方法(或点击函数声明上方的 CodeLens 按钮) |
命令面板 → Code Purifier: 打开审查面板 |
打开审查结果面板 |
命令面板 → Code Purifier: 修复此问题 / 批量修复 |
修复问题 |
命令面板 → Code Purifier: 导出报告 / 导出规则模板 |
导出报告 / 模板 |
全部命令前缀为 Code Purifier:,可在命令面板中搜索使用。
开发者
npm run compile # TypeScript 编译 + 复制 webview JS
npm run watch # tsc watch 模式
npm run lint # ESLint 检查 src/
npm test # 编译 → lint → 运行测试(@vscode/test-cli)
npm run package-prod # 生产打包:build + vsce package,产出 .vsix
前端界面(Webview)启动方式
插件内置 Webview 面板,无需启动独立前端服务:
- 设置面板:点击左侧活动栏「净码特工 / Code Purifier」图标,或在命令面板执行
Code Purifier: 打开设置面板。 - 审查面板:执行
Code Purifier: 打开审查面板或运行一次审查后自动展示。
Webview 资源在编译/打包时自动复制到 out/webview/,随插件加载。
API 密钥配置
- 打开设置面板(见上文)。
- 在「API 配置」区域选择 AI 供应商(默认
deepseek),填入 API Key(sk-...)。 - API Key 通过 VS Code SecretStorage 安全存储,不会写入
settings.json。 - 其他参数可在
settings.json中配置:
| 配置项 | 默认值 | 说明 |
|---|---|---|
vscode-code-reviewer.ai.provider |
deepseek |
AI 供应商 |
vscode-code-reviewer.ai.model |
deepseek-chat |
模型名称 |
vscode-code-reviewer.ai.baseUrl |
https://api.deepseek.com/v1 |
API Base URL |
vscode-code-reviewer.ai.temperature |
0.2 |
温度参数 |
vscode-code-reviewer.ai.maxTokens |
8192 |
单次最大输出 Token |
vscode-code-reviewer.ai.timeout |
300 |
请求超时(秒) |
vscode-code-reviewer.ai.outputLanguage |
zh-CN |
插件语言(zh-CN / en / ja) |
支持自定义 AI 供应商:在工作区根目录创建 .code-review/providers.json,按 providers.json 的格式追加 provider,即可覆盖或新增供应商。
依赖清单
运行时依赖(dependencies)
| 依赖 | 版本 | 用途 |
|---|---|---|
@eslint/js |
^9.39.3 | ESLint 内置规则集 |
eslint |
^9.39.3 | JS/TS 规范检查 |
mammoth |
^1.12.0 | Word 规则文档解析 |
officeparser |
^7.5.0 | Office 文档解析 |
stylelint |
^17.14.0 | CSS 规范检查 |
stylelint-config-recommended |
^18.0.0 | Stylelint 推荐规则 |
typescript-eslint |
^8.56.1 | TypeScript ESLint 规则 |
xlsx |
^0.18.5 | Excel 规则导入导出 |
开发依赖(devDependencies)
| 依赖 | 版本 | 用途 |
|---|---|---|
typescript |
^5.9.3 | TypeScript 编译器 |
esbuild |
^0.28.1 | 生产构建打包 |
@types/vscode |
^1.120.0 | VS Code API 类型 |
@types/node |
22.x | Node 类型定义 |
@types/mocha |
^10.0.10 | Mocha 类型定义 |
@vscode/test-cli |
^0.0.12 | 测试运行器 |
@vscode/test-electron |
^2.5.2 | 测试用 Electron |
@vscode/vsce |
^3.9.2 | VSIX 打包 |
其他配置项
- linter 选择:
vscode-code-reviewer.linters.*(javascript / typescript / java / jsp / html / css / sql / plsql),留空则禁用对应语言检查。 - PMD:
vscode-code-reviewer.pmd.jarPath/rulesetPath/jspRulesetPath/autoAuxClasspath。 - SQLFluff:
vscode-code-reviewer.sqlfluff.configFile/dialect。 - 修复:
vscode-code-reviewer.fixer.maxIterations。 - CodeLens:
vscode-code-reviewer.codelens.enabled/codelens.languages。 - 波浪线标记:
vscode-code-reviewer.markers.enabled。
详细配置项可在 VS Code 设置页搜索 vscode-code-reviewer 查看。
演示视频
演示视频(docs/demo.mp4,≤5 分钟:完整工作流 + IDE 集成效果 + 异常处理)进行中,将在后续提交中补齐。