ShowPinned lists all currently pinned skills for the session.
()
| 1257 | |
| 1258 | // ShowPinned lists all currently pinned skills for the session. |
| 1259 | func (sh *SkillHandler) ShowPinned() { |
| 1260 | skills := sh.GetPinnedSkills() |
| 1261 | |
| 1262 | fmt.Println() |
| 1263 | if len(skills) == 0 { |
| 1264 | fmt.Printf(" %s\n", colorize(i18n.T("skill.pinned.empty"), ColorYellow)) |
| 1265 | fmt.Printf(" %s\n\n", i18n.T("skill.pinned.hint", colorize("/skill pin <name>", ColorCyan))) |
| 1266 | return |
| 1267 | } |
| 1268 | |
| 1269 | fmt.Printf(" %s (%d):\n\n", |
| 1270 | colorize(i18n.T("skill.pinned.header"), ColorCyan), len(skills)) |
| 1271 | |
| 1272 | maxNameLen := 0 |
| 1273 | for _, s := range skills { |
| 1274 | if len(s.Name) > maxNameLen { |
| 1275 | maxNameLen = len(s.Name) |
| 1276 | } |
| 1277 | } |
| 1278 | |
| 1279 | for _, s := range skills { |
| 1280 | paddedName := fmt.Sprintf("%-*s", maxNameLen, s.Name) |
| 1281 | desc := s.Description |
| 1282 | if desc == "" { |
| 1283 | desc = "—" |
| 1284 | } |
| 1285 | fmt.Printf(" %s %s\n", |
| 1286 | colorize(paddedName, ColorCyan), |
| 1287 | colorize(desc, ColorGray)) |
| 1288 | } |
| 1289 | fmt.Println() |
| 1290 | } |
| 1291 | |
| 1292 | // IsPinned reports whether the named skill is currently pinned. Used by |
| 1293 | // /skill list to render the pin marker. |