Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
667 B
37 lines
667 B
package styles |
|
|
|
import ( |
|
"sort" |
|
|
|
"github.com/alecthomas/chroma" |
|
) |
|
|
|
// Registry of Styles. |
|
var Registry = map[string]*chroma.Style{} |
|
|
|
// Fallback style. Reassign to change the default fallback style. |
|
var Fallback = SwapOff |
|
|
|
// Register a chroma.Style. |
|
func Register(style *chroma.Style) *chroma.Style { |
|
Registry[style.Name] = style |
|
return style |
|
} |
|
|
|
// Names of all available styles. |
|
func Names() []string { |
|
out := []string{} |
|
for name := range Registry { |
|
out = append(out, name) |
|
} |
|
sort.Strings(out) |
|
return out |
|
} |
|
|
|
// Get named style, or Fallback. |
|
func Get(name string) *chroma.Style { |
|
if style, ok := Registry[name]; ok { |
|
return style |
|
} |
|
return Fallback |
|
}
|
|
|