1package styles
2
3import (
4 "sort"
5
6 "github.com/alecthomas/chroma"
7)
8
9// Registry of Styles.
10var Registry = map[string]*chroma.Style{}
11
12// Fallback style. Reassign to change the default fallback style.
13var Fallback = SwapOff
14
15// Register a chroma.Style.
16func Register(style *chroma.Style) *chroma.Style {
17 Registry[style.Name] = style
18 return style
19}
20
21// Names of all available styles.
22func Names() []string {
23 out := []string{}
24 for name := range Registry {
25 out = append(out, name)
26 }
27 sort.Strings(out)
28 return out
29}
30
31// Get named style, or Fallback.
32func Get(name string) *chroma.Style {
33 if style, ok := Registry[name]; ok {
34 return style
35 }
36 return Fallback
37}