67 lines
1.9 KiB
Markdown
67 lines
1.9 KiB
Markdown
# 316 ReviewComment 评审评论
|
|
|
|
## 用途
|
|
|
|
行级评审讨论:显示文件与行号、评论列表,支持回复、解决与重新打开。
|
|
|
|
## 最小示例
|
|
|
|
```go
|
|
thread := mujica.ReviewThread{File: "main.go", Line: 12, Messages: []mujica.ReviewMessage{
|
|
{Author: "Uika", When: time.Now(), Body: "Can this return early?"},
|
|
}}
|
|
draft := ""
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
r := mujica.ReviewComment(c, thread, &draft, mujica.ReviewCommentOptions{})
|
|
if text, ok := r.Replied(); ok {
|
|
thread.Messages = append(thread.Messages, mujica.ReviewMessage{Author: "Sakiko", When: time.Now(), Body: text})
|
|
}
|
|
if r.Resolved() || r.Reopened() {
|
|
thread.Resolved = !thread.Resolved
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
```
|
|
|
|
签名:`func ReviewComment(c *ui.Context, thread ReviewThread, draft *string, opts ReviewCommentOptions) ReviewCommentResult`
|
|
|
|
## 参数
|
|
|
|
`ReviewThread`
|
|
|
|
| 字段 | 类型 | 默认值 | 含义 |
|
|
| --- | --- | --- | --- |
|
|
| File | string | 必填 | 文件路径。 |
|
|
| Line | int | 必填 | 行号,须为正。 |
|
|
| Resolved | bool | false | 已解决:隐藏回复框,显示“重新打开”。 |
|
|
| Messages | []ReviewMessage | 必填 | 至少一条评论(作者、时间、正文)。 |
|
|
|
|
`ReviewCommentOptions`
|
|
|
|
| 字段 | 类型 | 默认值 | 含义 |
|
|
| --- | --- | --- | --- |
|
|
| TimeFormat | string | "2006-01-02 15:04" | 时间格式。 |
|
|
| Disabled | bool | false | 禁用回复、解决与重新打开。 |
|
|
|
|
`draft` 保存回复草稿,发送后清空。
|
|
|
|
## 状态
|
|
|
|
- 已解决:标题栏显示 Success 色图标与“已解决”。
|
|
- 回复按钮在草稿为空时禁用。
|
|
|
|
## 事件
|
|
|
|
- `Replied()`:发送的回复文本(去除首尾空白)。
|
|
- `Resolved()`、`Reopened()`:对应按钮。
|
|
|
|
## 键盘操作
|
|
|
|
- Tab 经过回复框与按钮;回复框内 Cmd+Enter(非 macOS 为 Ctrl+Enter)发送。
|
|
|
|
## 限制
|
|
|
|
- 评论正文为纯文本,不渲染 Markdown。
|
|
- 线程状态由调用方更新。
|