MujicaUI

Git · #311

TagList 浅色主题渲染快照
浅色 · 渲染快照
TagList 深色主题渲染快照
深色 · 渲染快照

311 TagList 标签列表

用途

标签列表:名称、注释与目标提交,每行可跳转到提交。

最小示例

var state data.ListState[string]
tags := []git.GitTag{{Name: "v1.1.0", Target: "a1b2c3d4", Annotation: "Release"}}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	r := git.TagList(c, &state, tags, git.TagListOptions{})
	r.Element.Height(200)
	if _, hash, ok := r.Action(); ok {
		_ = hash // show the tagged commit
	}
}
ui.Render(view, 400, 300, 1)

签名:func TagList(c *ui.Context, s *ListState[string], tags []GitTag, opts TagListOptions) GitListResult

参数

GitTag

字段类型默认值含义
Namestring必填标签名,唯一。
Targetstring必填目标提交哈希。
Annotationstring""注释;轻量标签留空。

TagListOptions

字段类型默认值含义
StatusDataStatusDataReady加载、追加、失败状态。
Errorstring""失败说明。

Name 或 Target 为空时 panic。给返回的 Element 一个高度。

状态

  • 注释为 TextMuted 单行,超长省略。

事件

  • Action() 返回 "jump" 与目标哈希。
  • Changed()、Submitted() 同 CommitList。

键盘操作

  • ↑/↓、Home/End 移动选择;“跳转到提交”按钮用 Tab 到达。

限制

  • 不读取标签:数据由调用方提供。