272 CommandExecutionCard 命令执行卡片
用途
显示一条命令的执行:命令、工作目录、带 ANSI 颜色的输出、退出码与耗时,执行中可请求中止。
最小示例
run := agent.CommandRun{Command: "go test ./...", Dir: "~/court", Running: true, Output: "\x1b[32mok\x1b[0m court\n"}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
if agent.CommandExecutionCard(c, run, agent.CommandExecutionCardOptions{}).Changed() {
fmt.Println("abort the process")
}
}
ui.Render(view, 400, 300, 1)签名:func CommandExecutionCard(c *ui.Context, run CommandRun, opts CommandExecutionCardOptions) ChoiceResult。Command 为空或 Height 为负时 panic。
参数
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
Height | float32 | 240 | 输出区高度。 |
Disabled | bool | false | 禁止中止。 |
Still | bool | false | 停止执行中动画;系统减少动画时也自动静止。 |
状态
CommandRun字段:Command、Dir、Output、Running、ExitCode、Duration。- 输出由
internal.ParseAnsi解析,颜色映射到主题;样式可跨行延续;追加输出只解析新增行。 - 输出虚拟化并跟随末尾,用户向上滚动后停止跟随。
- 退出码以图标和“退出码 N”文字显示。
事件
Changed():用户点击了“中止”;终止进程由调用方完成。
键盘操作
- Tab 到“中止”,Enter / Space 触发;输出区可滚动。
限制
- 只支持 SGR 颜色与样式,其它转义序列原样显示。
- 不运行命令,也不提供 PTY。

