Files
MujicaUI/docs/components/272-command-execution-card.md
T

49 lines
1.6 KiB
Markdown

# 272 CommandExecutionCard 命令执行卡片
## 用途
显示一条命令的执行:命令、工作目录、带 ANSI 颜色的输出、退出码与耗时,执行中可请求中止。
## 最小示例
```go
run := mujica.CommandRun{Command: "go test ./...", Dir: "~/court", Running: true, Output: "\x1b[32mok\x1b[0m court\n"}
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
if mujica.CommandExecutionCard(c, run, mujica.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。