Skip to content

Commit 999034d

Browse files
committed
Restore skill table renderer for list command
1 parent cfb5602 commit 999034d

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

internal/ui/table.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package ui
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
7+
"github.com/majiayu000/caude-skill-manager/internal/skill"
8+
"github.com/majiayu000/caude-skill-manager/pkg/styles"
9+
)
10+
11+
// RenderSkillTable renders skills as a table.
12+
func RenderSkillTable(skills []skill.Skill) string {
13+
if len(skills) == 0 {
14+
return styles.MutedStyle.Render("No skills installed yet.\n\nRun ") +
15+
styles.CodeStyle.Render("sk install <github-url>") +
16+
styles.MutedStyle.Render(" to install your first skill.")
17+
}
18+
19+
var b strings.Builder
20+
21+
header := fmt.Sprintf(" %-25s %-50s", "NAME", "DESCRIPTION")
22+
b.WriteString(styles.TableHeaderStyle.Render(header))
23+
b.WriteString("\n")
24+
25+
for _, s := range skills {
26+
name := s.Name
27+
if len(name) > 25 {
28+
name = name[:22] + "..."
29+
}
30+
31+
desc := s.Description
32+
if len(desc) > 50 {
33+
desc = desc[:47] + "..."
34+
}
35+
if desc == "" {
36+
desc = styles.MutedStyle.Render("(no description)")
37+
}
38+
39+
row := fmt.Sprintf(" %-25s %-50s",
40+
styles.SuccessStyle.Render(name),
41+
styles.SkillDescStyle.Render(desc),
42+
)
43+
b.WriteString(row)
44+
b.WriteString("\n")
45+
}
46+
47+
b.WriteString("\n")
48+
b.WriteString(styles.MutedStyle.Render(fmt.Sprintf(" %d skill(s) installed", len(skills))))
49+
50+
return b.String()
51+
}

0 commit comments

Comments
 (0)