Skip to content

feat: 扩展 TUI slash 指令并修复输入区/代码块渲染#107

Merged
minorcell merged 4 commits into
mainfrom
codex/issue-85-slash-improvements
Apr 1, 2026
Merged

feat: 扩展 TUI slash 指令并修复输入区/代码块渲染#107
minorcell merged 4 commits into
mainfrom
codex/issue-85-slash-improvements

Conversation

@creatang

@creatang creatang commented Apr 1, 2026

Copy link
Copy Markdown
Collaborator

变更说明

Fixes #85

本次 PR 主要完善了 NeoCode 的 TUI slash 指令能力,并修复了输入区与消息渲染中的两个明显问题。

主要改动

  • 收敛 slash 指令,只保留:
    • /help
    • /exit
    • /clear
    • /status
    • /provider
    • /model
  • 新增 & 命令执行入口,用于执行工作区命令并展示结果
  • 新增 @ 文件候选/补全入口,用于引用工作区文件
  • 修复代码块显示异常
  • 修复 & 命令失败时的乱码问题
  • 修复输入过程中 transcript 重建导致的粘贴/定位异常
  • 修复 /status 等场景下界面布局下移、输入区/输出区抖动的问题

2. 更新帮助与快捷键文案

  • 将帮助文案统一为 /help
  • 将退出文案统一为 /exit

3. 修复代码块显示异常

  • 修复 fenced code block 被压成“条状”的问题
  • 代码块现在按多行内容正常换行渲染

4. 修复输入区粘贴/定位体验

  • 避免在每次输入时都重建 transcript
  • 修复粘贴后光标/定位相关按键失效的问题
  • 保持输入区高度自适应,但减少不必要的整页刷新

5. 补充 TUI 测试

  • 增加 slash 指令相关测试
  • 更新输入与 picker 行为测试
  • 验证 /provider 与主仓库语义一致

测试

已执行:

  • go test ./internal/tui

影响范围

主要涉及以下文件:

  • internal/tui/commands.go
  • internal/tui/commands_test.go
  • internal/tui/keymap.go
  • internal/tui/styles.go
  • internal/tui/update.go
  • internal/tui/view.go

@codecov

codecov Bot commented Apr 1, 2026

Copy link
Copy Markdown

@creatang creatang requested a review from pionxe April 1, 2026 10:47
@minorcell

Copy link
Copy Markdown
Member

@creatang

这些 slash 似乎定位是有问题的:

  • “/status 查看当前工作区与 Git 状态“,这个查看的一般是session相关的信息、agent信息。

  • “/run 执行工作区命令” 这个是什么?有点模糊了,这部分看过 codex / claude 的做法是:

    $ git add .

    是通过 & 来做的,并且要有执行之后的结果展示。

  • “/git 执行 Git 命令” 完全多余,和 "/run"($) 重复了。

  • “/file 读取/写入/列出文件” 一般是 文件候选,“@”

  • “/plan 生成本地任务计划提示” plan 模式不仅仅是系统提示词的修改,而是多方面的,建议参考 claude code

  • “/undo 撤销最近一条本地记录” 如果没有实现,先去掉吧

  • “/setting 查看或修改配置“”/set 更新 URL / key / model“ 是模糊的,没有考虑清楚,甚至你们的provider方案还没定好吧

@creatang

creatang commented Apr 1, 2026

Copy link
Copy Markdown
Collaborator Author

@minorcell

  • /status这个部分的确是应该查看session相关的信息、agent信息,之前想着查找git是想配合萌海的想法,先往基础方向完成
  • /run /git都采用$完成
  • /file 使用'@'完成,并且尝试实现工作区内@提示
  • /undo /set 这两个还没有与其他部分配合好,按照现阶段先去掉,后续完善统一后加入

@creatang

creatang commented Apr 1, 2026

Copy link
Copy Markdown
Collaborator Author

后续如果有更加合适的slash指令会逐步添加

@minorcell

minorcell commented Apr 1, 2026

Copy link
Copy Markdown
Member

@creatang

  • /status这个部分的确是应该查看session相关的信息、agent信息,之前想着查找git是想配合萌海的想法,先往基础方向完成
  • /run /git都采用$完成
  • /file 使用'@'完成,并且尝试实现工作区内@提示
  • /undo /set 这两个还没有与其他部分配合好,按照现阶段先去掉,后续完善统一后加入
  1. 都有 run 了,为啥还有单独提供 git ?难道说 run 不能完成 git 的功能吗?
  2. @文件之后的行为是什么?我要一个数据流,用户流程。

@creatang

creatang commented Apr 1, 2026

Copy link
Copy Markdown
Collaborator Author

@minorcell
/git 部分在采用了&之后是没必要了,因为 & git status、& git add . 已经能完成同样的事。
现在的 @ 只是文件路径补全,不是附件系统。流程是:用户输入 @xxx,TUI 给出文件候选,按 Tab 补全成 @path/to/file,然后整条消息按普通文本发出去。也就是说,当前 agent 看到的是一段带@路径的文本
我的理解是这样的。

这个@后期是否会改造为读取文件引用?

@creatang creatang force-pushed the codex/issue-85-slash-improvements branch from 9b7229d to bcfc4d4 Compare April 1, 2026 13:01
@minorcell minorcell merged commit e91761b into main Apr 1, 2026
2 checks passed
@minorcell minorcell deleted the codex/issue-85-slash-improvements branch April 2, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix:修复代码块显示异常和粘贴功能

2 participants