Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ccplus-quoteNew to Visual Studio Code? Get it now.
ccplus-quote

ccplus-quote

leavor

|
4 installs
| (0) | Free
在资源管理器右键文件/文件夹,一键把 @引用 自动插入 Claude Code 对话框输入框;粘贴/芯片双模式,支持多选与文件夹
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ccplus-quote — 发送到 Claude Code

在 VS Code 资源管理器中右键文件/文件夹(支持多选),一键把 @引用 插入 Claude Code 对话框输入框。两种模式:

  • 粘贴模式(默认):全部走剪贴板 → 聚焦输入框 → OS 层模拟 Ctrl+V,零闪烁,纯文本样式。对模型而言与芯片等效(发送的都是 @路径 文本,Claude 均可解析读取)

  • 芯片模式:文件经官方 insertAtMention(Alt+K 同款机制)插入,渲染为蓝字浅蓝底富文本芯片;需短暂激活编辑器标签。增益仅在视觉、点击打开、以及含空格路径的可靠解析

  • 文件 → @src/app.py,文件夹 → @src/components/(尾部斜杠)

  • 命令面板调用(无资源管理器选中项)时发送当前编辑器文件,有选区自动带行号 @src/app.py#10-25

  • 终端模式(claudeCode.useTerminal)自动退回对应终端版命令

原理

芯片如何渲染:CC 输入框是 contenteditable 富文本,内部用正则 (?:^|\s)(@\S+) 扫描文本,但只有同时登记在其内部 mention Set 里的词元才渲染成芯片;Set 的写入方只有两个——手动 @ 自动补全的选择动作,和 insertAtMention 的内部投递。因此粘贴的纯文本永远无法变成芯片(硬边界),要芯片就必须走 insertAtMention,而它只读当前活动编辑器——这就是芯片模式需要短暂打开文件的原因。文件夹没有公共通道能产出芯片,统一走剪贴板。

粘贴链路:选中项拼成 @引用 串写入剪贴板 → 聚焦(编辑器标签页形态:官方 claude-vscode.focus 做输入框内部聚焦,再经 tabGroups 定位 claudeVSCodePanel 标签页,用内置的 focusNthEditorGroup 把键盘焦点交给它所在编辑器组——只激活已有标签页,不新建;侧边栏形态:仅官方 focus)→ 等待 pasteDelayMs → 重查窗口前台、补发一次官方 focus(把最后一次聚焦与按键的间隔压到最小)→ 子进程在 OS 层模拟 Ctrl+V(Windows 用 PowerShell SendKeys,macOS 用 osascript,Linux 用 xdotool)。扩展宿主内不能向其他扩展的 webview 发按键,但起子进程由操作系统投递不受此限制。官方 focus 只发内部聚焦消息,键盘焦点不在 CC 侧时不会移交(单独使用 Ctrl+V 会落空);而 editor.openLast 的 createPanel 每次都会新开面板、视图容器命令会强行展开侧边栏,皆不可用。

前后补空:粘贴的引用串前后各带一个空格。输入框已有文本时,直接粘贴 @xxx 会与相邻文本粘连(如 text@xxx),破坏 mention 解析(@ 前必须是行首或空白);空输入框中多出的首尾空格对解析与发送均无影响。

配置

  • ccplus-quote.mode(paste | chip,默认 paste):粘贴 / 芯片模式
  • ccplus-quote.autoPaste(默认 true):粘贴链路中自动模拟 Ctrl+V;关闭则退化为复制+聚焦,手动粘贴
  • ccplus-quote.pasteDelayMs(默认 250):聚焦后到模拟粘贴的等待毫秒;偶发粘贴落空(CC 思考时更易出现)可调大
  • ccplus-quote.focusProbe(默认 false,仅 Windows):诊断开关,确认粘贴失败用——模拟按键前用 UIA 查询键盘焦点所在元素并写入日志。粘贴落空无法从退出码察觉(日志里成功与失败都是"已模拟 Ctrl+V");开启后再遇到失败,日志中"焦点探针(按键瞬间)"一行即按键瞬间焦点的真实去向(ControlType.Edit|Code = 在可编辑元素上,Pane|Code = 无障碍树未暴露或焦点不在输入框)。首次查询只激活无障碍树,多试几次才准确;每次粘贴约增加 1 秒耗时
  • ccplus-quote.chipDelayMs(默认 10):芯片模式下触发插入命令后到关闭临时预览标签的等待毫秒——需大于扩展宿主捕获活动编辑器所需时间;若个别机器上仍偶见闪帧,可保持默认,出现"芯片丢失"才调大

定时发送(可选)

开启后,每天在设定时间通过 Claude Code CLI 无头模式(claude -p "消息")自动发送一条固定消息:

  • ccplus-quote.scheduleEnabled(默认 false):开关
  • ccplus-quote.scheduleTime(默认 "09:30"):24 小时制 HH:mm,设置界面有格式校验,运行时非法值会告警(同一坏值只告警一次);仅设定时刻后 60 秒内的检查会触发,错过(如当时 VS Code 未运行)当日不补发
  • ccplus-quote.scheduleMessage:消息内容,留空不发送
  • ccplus-quote.scheduleWorkdays(默认 cn-workday):发送日范围 —— daily 每天 / weekday 仅周一至周五 / cn-workday 仅中国法定工作日(法定节假日不送、调休上班日照送;数据来自 chinese-days,超出数据年份时退回周一至周五)。数据维护:国务院约每年 11 月公布次年安排,依赖随之更新;若到 1 月 10 日扩展携带的数据仍未覆盖当年,会在启用定时时提醒更新扩展(每年一次)
  • ccplus-quote.scheduleClaudePath:claude 可执行文件路径,留空自动探测(Windows 取 npm 全局目录下 claude.exe,其他平台用 PATH 中的 claude);自定义路径不存在或完全探测不到时明确告警,不静默失败

特性:走 CLI 子进程,不依赖 CC 面板、窗口前台与按键模拟,VS Code 在后台也能发送;每次是独立新会话;当日只发一次(触发即记档,失败不重试);多个 VS Code 窗口/项目同时开着也不会重复发送(临时目录下的当日锁文件做跨窗口原子互斥,以最先抢到锁的窗口的工作区为发送目录);错过触发窗口当日不补发;会话输出与结果通知落在输出面板与排障日志。命令面板执行 "定时发送:立即测试" 可跳过定时直接验证整条链路。

边界:仍需 VS Code 处于运行状态(扩展宿主随窗口启停);本机需已登录 claude CLI;每次发送启动会话消耗 token。完全无人值守(机器不开 VS Code)请改用系统计划程序直接跑 claude -p。

已知边界

  • CC 正在思考(流式输出)时偶发粘贴落空:webview 忙碌导致输入框来不及接管键盘焦点,按键被丢(日志视角仍是"已模拟 Ctrl+V",这类失败无法从退出码察觉)。粘贴前的补聚焦已缓解大部分场景;仍偶发时可调大 ccplus-quote.pasteDelayMs,或直接手动 Ctrl+V(剪贴板内容仍在);要确认失败原因,开启 ccplus-quote.focusProbe,失败时看日志"焦点探针"一行;
  • 文件夹、二进制文件(编辑器打不开的)一律走剪贴板纯文本;
  • CC 会话面板完全关闭时,focus 会新开最近会话,webview 冷加载可能超过等待窗口,首次粘贴可能落空(此时手动 Ctrl+V 即可,剪贴板内容仍在);
  • 模拟按键前会确认 VS Code 窗口处于前台,避免把内容粘到其他应用;CC 面板位于辅助窗口时 focus 有官方未修 bug,可能聚焦失败(可关 autoPaste 规避);
  • macOS 需要在 系统设置 → 隐私与安全 → 辅助功能 中授权 VS Code;
  • 若触发 focus 时编辑器里恰好有选中文本,CC 自身的行为会把该选区引用一并插入(与官方 Ctrl+Esc 一致)。

依赖已安装 Claude Code 扩展(anthropic.claude-code)。

排障日志:输出面板 → "ccplus-quote"(同时落盘 %TEMP%\ccplus-quote-debug.log)。

开发

  • 调试:F5("运行扩展")启动扩展开发宿主,直接从源码加载,改完代码在宿主窗口里 Restart 即可,无需打包安装;打包(vsce package)与发布仅在出新版本时进行
  • 自测:node selftest.js(mock 掉 vscode 与 child_process,断言 18 组场景)
  • 发版:改代码 → 自测 → 提交;发布时升版本号 → vsce package → 上传市场
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft