问题描述
在 OpenCode 官方行为中,用户可以通过连续按 ↑ 键,依次获取更早的历史指令。
但在本项目中,按一次 ↑ 取回上一条指令后,再次按 ↑ 时,并不会继续获取更早的历史指令,而是变成了输入框内部的光标上移行为。只有当光标继续移动到当前输入内容的第一个字符前面后,才能再次获取前一条历史指令。
这会导致历史指令浏览不连续,和 OpenCode 官方的交互行为不一致。
复现步骤
- 打开输入框并先执行多条指令,确保存在历史记录
- 在输入框中按一次
↑
- 成功取回上一条历史指令
- 再次按
↑
预期结果
连续按 ↑ 时,应当像 OpenCode 官方一样,持续按历史顺序向前浏览更早的指令。
实际结果
第二次按 `↑`` 后,行为变成输入框内的光标上移;
只有在光标移动到当前内容最前面后,才能继续获取更早的历史指令。
影响
这会打断历史指令的连续浏览体验,导致用户无法像官方版本那样高效回溯和复用之前输入过的命令。
补充说明
该问题看起来像是 ↑ 键在“历史指令切换”与“多行输入框光标移动”之间的事件处理优先级不正确,导致第二次按键没有继续命中历史记录逻辑。
问题描述
在 OpenCode 官方行为中,用户可以通过连续按
↑键,依次获取更早的历史指令。但在本项目中,按一次
↑取回上一条指令后,再次按↑时,并不会继续获取更早的历史指令,而是变成了输入框内部的光标上移行为。只有当光标继续移动到当前输入内容的第一个字符前面后,才能再次获取前一条历史指令。这会导致历史指令浏览不连续,和 OpenCode 官方的交互行为不一致。
复现步骤
↑↑预期结果
连续按
↑时,应当像 OpenCode 官方一样,持续按历史顺序向前浏览更早的指令。实际结果
第二次按 `↑`` 后,行为变成输入框内的光标上移;
只有在光标移动到当前内容最前面后,才能继续获取更早的历史指令。
影响
这会打断历史指令的连续浏览体验,导致用户无法像官方版本那样高效回溯和复用之前输入过的命令。
补充说明
该问题看起来像是
↑键在“历史指令切换”与“多行输入框光标移动”之间的事件处理优先级不正确,导致第二次按键没有继续命中历史记录逻辑。