mirror of
https://github.com/cheat/cheat.git
synced 2024-12-18 10:45:05 +01:00
1790aec85d
Bump `alecthomas/chroma` to `v2`: https://github.com/cheat/cheat/issues/735
38 lines
659 B
Go
38 lines
659 B
Go
package sheet
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"github.com/cheat/cheat/internal/config"
|
|
|
|
"github.com/alecthomas/chroma/v2/quick"
|
|
)
|
|
|
|
// Colorize applies syntax-highlighting to a cheatsheet's Text.
|
|
func (s *Sheet) Colorize(conf config.Config) {
|
|
|
|
// if the syntax was not specified, default to bash
|
|
lex := s.Syntax
|
|
if lex == "" {
|
|
lex = "bash"
|
|
}
|
|
|
|
// write colorized text into a buffer
|
|
var buf bytes.Buffer
|
|
err := quick.Highlight(
|
|
&buf,
|
|
s.Text,
|
|
lex,
|
|
conf.Formatter,
|
|
conf.Style,
|
|
)
|
|
|
|
// if colorization somehow failed, do nothing
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// otherwise, swap the cheatsheet's Text with its colorized equivalent
|
|
s.Text = buf.String()
|
|
}
|