Motivation
来自社区反馈 https://github.com/StudentWeis/ropy/discussions/134:用户用全局快捷键唤起 ropy 之后,要切换分类(文本 / 图片 / 文件 / 收藏)必须用鼠标点筛选条上的按钮,没有键盘快捷键。键鼠来回切换打断了快速取数的流程。
不是将收藏的内容,变成非收藏。而是过滤,过滤收藏的内容。即切到收藏界面。
注意收藏是过滤维度,不是切换当前选中项的收藏状态(后者已经用裸键 f)。
Proposed Solution
新增三个 GPUI action,注册为 app 级 bind_keys:
| 快捷键 |
行为 |
Alt + → |
在 All → Text → Image → Files → All 之间循环到下一个分类 |
Alt + ← |
反向循环到上一个分类 |
Alt + F |
切换"仅收藏"过滤(与上面的内容分类正交,可组合,例如 "收藏的图片") |
语义与现有 UI 一致:
- 内容分类循环到
All 表示无过滤;
Alt+F 再按一次关闭收藏过滤。
实现要点:
- 三个 action 复用现成的
toggle_content_filter / toggle_favorites_only + sync_filtered_records_and_reveal,新增一个纯函数 next_content_filter(current, forward) -> ContentFilter(TDD)。
- 在
src/app.rs 用 bind_keys 注册 alt-left / alt-right / alt-f;在 src/gui/board.rs 通过 .on_action(...) 挂 handler。
- 帮助面板
src/gui/panel/help.rs 增加对应的行,i18n key 三种语言齐备。
Alternatives Considered
- Cmd/Ctrl + 1..4 (modifier + 数字):和
1-5 快速粘贴语义类似但不冲突;被排除是因为占用了 Cmd-命名空间且收藏切换需要单独的键。
- Tab / Shift+Tab 循环:Input 组件在自己的 context 里把
tab / shift-tab 绑成了 IndentInline / OutdentInline(gpui-component-0.5.1/src/input/state.rs:127-128),搜索框聚焦时会被截走,体验不一致。Alt+方向键也有同类问题但收益更明显(左右二选一比循环单方向更顺手)。
- 裸字母 (t/i/e/v 等):会与其他单键冲突(
f 已用)且搜索框聚焦时不生效。
Alt + F 之所以可以在搜索框聚焦时也生效:alt-f 不在 Input 的绑定表里。
Acceptance Criteria
Scope
gui
Motivation
来自社区反馈 https://github.com/StudentWeis/ropy/discussions/134:用户用全局快捷键唤起 ropy 之后,要切换分类(文本 / 图片 / 文件 / 收藏)必须用鼠标点筛选条上的按钮,没有键盘快捷键。键鼠来回切换打断了快速取数的流程。
注意收藏是过滤维度,不是切换当前选中项的收藏状态(后者已经用裸键
f)。Proposed Solution
新增三个 GPUI action,注册为 app 级
bind_keys:Alt + →All → Text → Image → Files → All之间循环到下一个分类Alt + ←Alt + F语义与现有 UI 一致:
All表示无过滤;Alt+F再按一次关闭收藏过滤。实现要点:
toggle_content_filter/toggle_favorites_only+sync_filtered_records_and_reveal,新增一个纯函数next_content_filter(current, forward) -> ContentFilter(TDD)。src/app.rs用bind_keys注册alt-left/alt-right/alt-f;在src/gui/board.rs通过.on_action(...)挂 handler。src/gui/panel/help.rs增加对应的行,i18n key 三种语言齐备。Alternatives Considered
1-5快速粘贴语义类似但不冲突;被排除是因为占用了 Cmd-命名空间且收藏切换需要单独的键。tab/shift-tab绑成了 IndentInline / OutdentInline(gpui-component-0.5.1/src/input/state.rs:127-128),搜索框聚焦时会被截走,体验不一致。Alt+方向键也有同类问题但收益更明显(左右二选一比循环单方向更顺手)。f已用)且搜索框聚焦时不生效。Alt + F之所以可以在搜索框聚焦时也生效:alt-f不在 Input 的绑定表里。Acceptance Criteria
Alt + →/Alt + ←在主列表聚焦时切换内容分类,循环顺序符合预期Alt + F切换收藏过滤,在搜索框聚焦时也生效next_content_filter的循环逻辑scripts/precheck.sh通过Scope
gui