An AI-powered VSCode extension that checks code quality and displays colorful scores in the status bar.
一个 VSCode 扩展,使用 AI 检查代码质量并在状态栏显示彩色分数。
✨ 功能
- 彩色分数显示
- 切换本地 Ollama 或远程 API
- 自动更新分数(支持配置防抖时间)
- 快捷键(Ctrl+Alt+E / Cmd+Alt+E)
- 可配置的系统提示词
📊 分数等级
| 分数范围 | 等级 | 颜色 |
|---|---|---|
| 90-100 | 优秀 | #2ea043 |
| 80-89 | 良好 | #3794ff |
| 70-79 | 一般 | #c9a227 |
| 60-69 | 较差 | #d35400 |
| 0-59 | 严重 | #ff3b30 |
🚀 快速开始
安装
方式一:从 VSCode 市场安装(推荐)
- 在 VSCode 中打开扩展视图(Ctrl+Shift+X / Cmd+Shift+X)
- 搜索 "Chobits AI Code Checker"
- 点击安装
方式二:从发行版安装
- 从 GitHub Releases 下载
.vsix文件 - 在 VSCode 中执行:
Extensions: Install from VSIX... - 选择下载的
.vsix文件
配置 AI
本地模型(推荐)
- 安装 Ollama
- 下载模型:
ollama pull [模型名] - 启动 Ollama:
ollama serve - 设置
codeChecker.aiProvider为local - 设置
codeChecker.local.model为你的模型名称
远程 API
设置 codeChecker.aiProvider 为 remote,配置 API 地址、密钥和模型名称。
使用
打开代码文件,插件自动检查并在状态栏显示分数,或按 Ctrl+Alt+E / Cmd+Alt+E 手动触发。
⚙️ 配置
| 设置 | 描述 | 默认值 |
|---|---|---|
codeChecker.aiProvider |
AI 服务提供商(local=本地, remote=远程) | local |
codeChecker.local.model |
本地 Ollama 模型名称 | - |
codeChecker.remote.endpoint |
远程 API 地址 | - |
codeChecker.remote.apiKey |
远程 API 密钥(可选) | - |
codeChecker.remote.model |
远程 API 模型名称 | - |
codeChecker.autoUpdate |
启用自动更新 | true |
codeChecker.updateDebounceMs |
防抖时间(毫秒) | 2000 |
codeChecker.statusBarPosition |
状态栏位置(left/right) | right |
codeChecker.codeFileExtensions |
需要检查的代码文件后缀名列表 | 见 package.json |
codeChecker.systemPrompt |
AI 系统提示词 | 见 package.json |
🔌 开发者 API
其他 VSCode 扩展可以通过以下 API 调用本插件的功能。
获取 API 实例
const extension = vscode.extensions.getExtension('MRoldL001.chobits-ai-code-checker');
if (extension) {
// 确保扩展已激活
if (!extension.isActive) {
await extension.activate();
}
const api = extension.exports;
// 现在可以使用 api 对象调用以下方法
}
API 方法
| 方法 | 描述 | 返回值 |
|---|---|---|
getCurrentScore() |
获取当前激活文档的代码质量分数 | number (0-100,未检查则为-1) |
checkCodeQuality() |
检查当前激活文档的代码质量并更新状态栏 | Promise<number> |
getScoreColor(score) |
根据分数获取 hex 颜色值 | string |
getScoreLabel(score) |
根据分数获取等级标签 | string |
checkCodeWithText(code, languageId?) |
检查传入的任意代码字符串 | Promise<number> |