Browse Source

docs: add keybindings design spec

Developer 1 month ago
parent
commit
10991462da
1 changed files with 62 additions and 0 deletions
  1. 62 0
      docs/superpowers/specs/2026-07-14-keybindings-design.md

+ 62 - 0
docs/superpowers/specs/2026-07-14-keybindings-design.md

@@ -0,0 +1,62 @@
+# Copy AI Ctx 快捷键支持 — 设计规格
+
+## 概述
+
+为 Copy AI Ctx 扩展的 4 个命令添加快捷键支持,使用 `Ctrl+K Ctrl+C`(macOS 映射为 `Cmd+K C`),通过 VS Code `when` 条件自动匹配上下文。
+
+## 变更范围
+
+仅修改 `package.json` 文件。不涉及 TypeScript 代码。
+
+## 快捷键设计
+
+| 平台 | 快捷键 |
+|------|--------|
+| macOS | `Cmd+K` 松手 → `C` |
+| Windows/Linux | `Ctrl+K` 松手 → `C` |
+
+## 绑定规则
+
+所有命令共享同一快捷键,通过 `when` 条件区分上下文:
+
+| when 条件 | 触发命令 |
+|-----------|---------|
+| `editorHasSelection` | `copy-ai-ctx.copySelection` — 复制选中区域引用 |
+| `!editorHasSelection && editorFocus` | `copy-ai-ctx.copyFile` — 复制当前文件引用 |
+| `explorerViewletVisible && !listMultiSelection` | `copy-ai-ctx.copySelectedFiles` — 资源管理器单选 |
+| `explorerViewletVisible && listMultiSelection` | `copy-ai-ctx.copyMultiFiles` — 资源管理器多选 |
+
+## keybindings 贡献声明
+
+```jsonc
+"keybindings": [
+  {
+    "key": "ctrl+k ctrl+c",
+    "command": "copy-ai-ctx.copySelection",
+    "when": "editorHasSelection"
+  },
+  {
+    "key": "ctrl+k ctrl+c",
+    "command": "copy-ai-ctx.copyFile",
+    "when": "!editorHasSelection && editorFocus"
+  },
+  {
+    "key": "ctrl+k ctrl+c",
+    "command": "copy-ai-ctx.copySelectedFiles",
+    "when": "explorerViewletVisible && !listMultiSelection"
+  },
+  {
+    "key": "ctrl+k ctrl+c",
+    "command": "copy-ai-ctx.copyMultiFiles",
+    "when": "explorerViewletVisible && listMultiSelection"
+  }
+]
+```
+
+## 不受影响的部分
+
+- 现有命令定义不变
+- 右键菜单 (`menus`) 不变
+- 核心复制逻辑 (`copyContext.ts`) 不变
+- 扩展激活逻辑 (`extension.ts`) 不变
+- 输出格式不变