🚀 Claude Code 增强工具(cc-enhancer)
VS Code 扩展,为 Claude Code 扩展 补上"右键加入上下文"菜单,让选中代码 / 文件一键注入 Claude 对话,替代繁琐的手动输入 @路径。
✨ 核心功能
一、注入到 VS Code 内的 Claude(终端 / 官方扩展)
| 场景 |
操作 |
注入内容 |
| 📝 编辑器选中代码 |
选中代码 → 右键 → 添加选中代码到上下文 |
@相对路径#L行号-行号 |
| 📁 资源管理器右键文件 |
右键文件 → 添加文件到上下文 |
@相对路径 |
- 复用官方扩展已注册的注入命令,零侵入、零副作用,行为与
alt+k 原生入口完全一致;
- 自动识别原生 UI / 终端模式(
claudeCode.useTerminal),命令缺失时自动回退;
- 目录场景不提供菜单项(官方暂无目录注入通道,详见设计文档)。
二、复制引用到 Claude 桌面端(Code tab)
| 场景 |
操作 |
剪贴板内容 |
| 📝 编辑器选中代码 |
选中代码 → 右键 → 复制选中代码引用 |
@相对路径#L行号-行号 |
| 📁 资源管理器右键文件 |
右键文件 → 复制文件引用 |
@相对路径 |
点击后会自动把 Claude 桌面端切到前台,回到输入框 Cmd+V 即可。
为什么桌面端要手动粘贴? 桌面端与 VS Code 是两个独立进程,官方没有提供任何
面向第三方、能写入「已有会话」输入框的通道(claude://code/new 深链只能开新会话)。
所以这里选择最可靠的做法:备好引用串 + 把人送到粘贴位置。
⚡ 快速开始
安装插件
- 从 VSIX 安装:
- 下载仓库
Releases 中的 cc-enhancer-*.vsix
- VS Code → 扩展图标 → "..." → "从 VSIX 安装",选择该文件
- 从源码安装:见下方「开发说明」。
使用步骤
- 加入选中代码:在编辑器中选中一段代码 → 右键 → 点击「添加选中代码到上下文」,Claude 输入框即出现
@相对路径#L行-行。
- 加入文件:在资源管理器中右键一个文件 → 点击「添加文件到上下文」,Claude 输入框即出现
@相对路径。
- 发给桌面端:右键 → 点击「复制…引用」,窗口自动切到 Claude 桌面端,在 Code tab 输入框
Cmd+V 粘贴即可。
前提:第 1、2 步需已安装并启用 Anthropic 的 Claude Code 扩展;第 3 步不依赖该扩展。
⚙️ 配置
| 配置项 |
默认 |
说明 |
ccEnhance.focusDesktop |
true |
复制引用后自动把 Claude 桌面端切到前台(仅 macOS)。关闭后只写剪贴板,不抢焦点 |
同时自动读取 Claude Code 扩展自身的配置:
| 配置项 |
默认 |
说明 |
claudeCode.useTerminal |
false |
false 走原生 UI 命令;true 走终端模式命令 |
🔧 常见问题
1. 点击菜单没反应 / 提示"未检测到 Claude Code 扩展"❓
- 确认已安装并启用
anthropic.claude-code 扩展;
- 若启用了终端模式,请确认
claudeCode.useTerminal 配置与你当前的 Claude 交互方式一致。本扩展会自动在两个注入命令间回退,一般无需手动干预。
2. 为什么目录右键没有菜单项❓
官方 Claude 扩展目前没有面向第三方开放的"目录引用"注入命令,因此设计上仅对文件与选中代码提供入口,目录场景不显示菜单项。
3. 新增文件后菜单项没出现❓
VS Code 的右键菜单在窗口重载后刷新。若刚安装扩展,请重启窗口(Cmd+Shift+P → Developer: Reload Window)。
4. 桌面端粘贴后引用没被识别❓
- 确认粘贴的是完整 token(含尾随空格),且粘贴位置后方是空白或行尾;
- 桌面端与 VS Code 的工作目录需一致:引用是相对路径,工作目录不同会指向不存在的文件;
- 云端 / WSL 会话不支持
@ 文件引用,只有本地会话可用。
🚀 开发说明
技术栈:TypeScript + VS Code Extension API + esbuild。
npm install # 安装依赖
npm run typecheck # 类型检查(tsc --noEmit)
npm run build # 类型检查 + esbuild 打包 + vsce 打包成 .vsix
调试:在 VS Code 中打开项目,按 F5 启动扩展开发宿主,即可在开发宿主里实测右键菜单。
目录结构
src/
├── extension.ts # 插件入口(activate/deactivate)
├── commands.ts # 命令注册与实现(命令统一在此注册)
├── mention.ts # mention 文本生成 + 桌面端激活
├── config.ts # 配置统一访问入口
└── constants.ts # 命令 ID / 桌面端标识常量
📝 反馈建议
欢迎在 GitHub Issues 提交问题与建议。