{ "name": "vscode-code-reviewer", "displayName": "净码特工 · Code Purifier", "description": "AI 驱动的代码审查与规范检查一体化 VSCode 插件", "version": "1.0.0", "engines": { "vscode": "^1.120.0" }, "categories": [ "Other" ], "activationEvents": [], "main": "./out/extension.js", "contributes": { "commands": [ { "command": "codeReviewer.review", "title": "Code Purifier: 运行代码审查" }, { "command": "codeReviewer.reviewSelection", "title": "Code Purifier: 审查选中代码" }, { "command": "codeReviewer.openPanel", "title": "Code Purifier: 打开审查面板" }, { "command": "codeReviewer.exportReport", "title": "Code Purifier: 导出报告" }, { "command": "codeReviewer.addCustomRule", "title": "Code Purifier: 添加自定义规则" }, { "command": "codeReviewer.fixIssue", "title": "Code Purifier: 修复此问题" }, { "command": "codeReviewer.fixAll", "title": "Code Purifier: 批量修复" }, { "command": "codeReviewer.openSetup", "title": "Code Purifier: 打开设置面板" } ], "keybindings": [ { "command": "codeReviewer.review", "key": "ctrl+shift+r", "when": "editorTextFocus" } ], "viewsContainers": { "activitybar": [ { "id": "code-reviewer", "title": "Code Purifier", "icon": "images/icon.png" } ] }, "views": { "code-reviewer": [ { "type": "webview", "id": "codeReviewer.setupView", "name": "设置" } ] }, "menus": { "editor/context": [ { "command": "codeReviewer.review", "group": "navigation" }, { "command": "codeReviewer.reviewSelection", "when": "editorHasSelection" } ] }, "configuration": { "title": "Code Purifier", "properties": { "vscode-code-reviewer.ai.provider": { "type": "string", "default": "deepseek", "enum": [ "deepseek", "openai" ], "description": "AI 模型提供商" }, "vscode-code-reviewer.ai.model": { "type": "string", "default": "deepseek-chat", "description": "AI 模型名称" }, "vscode-code-reviewer.ai.baseUrl": { "type": "string", "default": "https://api.deepseek.com/v1", "description": "API Base URL" }, "vscode-code-reviewer.ai.temperature": { "type": "number", "default": 0.2, "description": "AI 温度参数" }, "vscode-code-reviewer.ai.maxTokens": { "type": "number", "default": 8192, "description": "AI 单次请求最大输出 Token 数" }, "vscode-code-reviewer.ai.timeout": { "type": "number", "default": 300, "description": "AI 请求超时(秒)" }, "vscode-code-reviewer.ai.outputLanguage": { "type": "string", "default": "zh-CN", "enum": [ "zh-CN", "en", "ja" ], "description": "AI 输出语言" }, "vscode-code-reviewer.linters.javascript": { "type": "string", "default": "eslint", "enum": [ "", "eslint" ], "description": "JavaScript linter" }, "vscode-code-reviewer.linters.typescript": { "type": "string", "default": "eslint", "enum": [ "", "eslint" ], "description": "TypeScript linter" }, "vscode-code-reviewer.linters.java": { "type": "string", "default": "pmd", "enum": [ "", "pmd" ], "description": "Java linter" }, "vscode-code-reviewer.linters.jsp": { "type": "string", "default": "jsp", "enum": [ "", "jsp" ], "description": "JSP linter" }, "vscode-code-reviewer.linters.html": { "type": "string", "default": "jsp", "enum": [ "", "jsp" ], "description": "HTML linter" }, "vscode-code-reviewer.linters.css": { "type": "string", "default": "stylelint", "enum": [ "", "stylelint" ], "description": "CSS linter" }, "vscode-code-reviewer.linters.sql": { "type": "string", "default": "sql-lint", "enum": [ "", "sql-lint" ], "description": "SQL linter" }, "vscode-code-reviewer.linters.plsql": { "type": "string", "default": "sql-lint", "enum": [ "", "sql-lint" ], "description": "PL/SQL linter" }, "vscode-code-reviewer.pmd.jarPath": { "type": "string", "default": "", "description": "PMD jar 路径(空=使用插件内置)" }, "vscode-code-reviewer.pmd.rulesetPath": { "type": "string", "default": "", "description": "Java 规则集 XML 路径(空=使用内置)" }, "vscode-code-reviewer.pmd.jspRulesetPath": { "type": "string", "default": "", "description": "JSP 规则集 XML 路径(空=使用内置)" }, "vscode-code-reviewer.sql-lint.configFile": { "type": "string", "default": "", "description": "sqlfluff 配置文件路径" }, "vscode-code-reviewer.fixer.contextLines": { "type": "number", "default": 5, "description": "AI 修复时提取的上下文行数" } } } }, "scripts": { "compile": "tsc -p ./ && node scripts/copy-webview-js.mjs", "watch": "tsc -watch -p ./", "build": "node scripts/build.mjs", "vscode:prepublish": "npm run build", "download-pmd": "node scripts/download-pmd.mjs", "package-prod": "node scripts/package-prod.mjs", "pretest": "npm run compile && npm run lint", "lint": "eslint src", "test": "vscode-test" }, "dependencies": { "eslint": "^9.39.3", "stylelint": "^17.14.0", "typescript-eslint": "^8.56.1", "xlsx": "^0.18.5" }, "devDependencies": { "@types/mocha": "^10.0.10", "@types/node": "22.x", "@types/vscode": "^1.120.0", "@vscode/test-cli": "^0.0.12", "@vscode/test-electron": "^2.5.2", "@vscode/vsce": "^3.9.2", "esbuild": "^0.28.1", "typescript": "^5.9.3" } }