AI 功能
AI Chat
AI Chat 是你的对话式编程助手,随时解答问题、解释代码、提供重构建议。
打开 AI Chat
- Cmd/Ctrl + L — 快速打开/关闭 Chat 面板
- 点击左侧活动栏的 AI 图标
- 选中代码后右键 → "Ask AI"
上下文引用
在 Chat 输入框中使用 @ 符号引用上下文,让 AI 更准确地理解你的问题。
上下文引用语法
# 引用单个文件
@src/utils/auth.js 这个文件的 JWT 验证逻辑有什么问题?
# 引用整个代码库(索引后可用)
@代码库 找出所有没有错误处理的 API 调用
# 引用当前打开的文件
@当前文件 帮我添加 TypeScript 类型注解
# 引用终端输出
@终端 这个报错是什么原因?怎么修复?
常用场景示例
💬 解释代码
Chat提示词示例
# 选中代码后发送
解释这段代码的作用,用中文,要通俗易懂
# 或者引用文件
@src/middleware/rateLimit.js 这个限流中间件是怎么工作的?
🐛 调试错误
Chat提示词示例
# 粘贴错误信息
TypeError: Cannot read properties of undefined (reading 'map')
at UserList (UserList.jsx:15)
@src/components/UserList.jsx 帮我找出这个错误的原因并修复
# 或者引用终端
@终端 这个错误怎么解决?
♻️ 代码重构
Chat提示词示例
# 选中代码后
重构这段代码:
1. 提取重复逻辑为独立函数
2. 使用 async/await 替换 Promise 链
3. 添加适当的错误处理
# 针对整个文件
@src/api/users.js 将这个文件重构为 TypeScript,
添加完整的类型定义
✍️ 编写测试
Chat提示词示例
# 为现有函数生成测试
@src/utils/validator.js 用 Jest 为这个文件中的所有函数
编写单元测试,覆盖边界情况
# 生成的测试文件示例
import { validateEmail, validatePhone } from '../utils/validator'
describe('validateEmail', () => {
it('应该接受有效邮箱', () => {
expect(validateEmail('user@example.com')).toBe(true)
})
it('应该拒绝无效邮箱', () => {
expect(validateEmail('not-an-email')).toBe(false)
})
})
切换 AI 模型
在 Chat 输入框左下角可以切换使用的 AI 模型:
- GPT-4o — 综合能力强,适合大多数任务
- Claude 3.5 Sonnet — 代码理解和长文本处理更出色
- 可以根据任务类型灵活切换
提问越具体,AI 回答越准确。与其说"帮我优化代码",不如说"帮我优化这个函数的时间复杂度,目前是 O(n²)"。