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²)"。