Don't determine auto style on init

The automatic style configuration will now only be determined, when
initialized with the WithAutoStyle renderer option.
This commit is contained in:
Christian Muehlhaeuser
2020-03-20 18:39:16 +01:00
parent af31f7f38e
commit 301d3bcf30
3 changed files with 15 additions and 16 deletions
+14
View File
@@ -111,6 +111,20 @@ func WithStandardStyle(style string) TermRendererOption {
}
}
// WithAutoStyle sets a TermRenderer's styles with either the standard dark
// or light style, depending on the terminal's background color at run-time.
func WithAutoStyle() TermRendererOption {
return func(tr *TermRenderer) error {
style := LightStyleConfig
if termenv.HasDarkBackground() {
style = DarkStyleConfig
}
tr.ansiOptions.Styles = style
return nil
}
}
// WithStylePath sets a TermRenderer's style from stylePath. stylePath is first
// interpreted as a filename. If no such file exists, it is re-interpreted as a
// standard style.
+1 -1
View File
@@ -92,7 +92,7 @@ func TestTermRenderer(t *testing.T) {
func TestStyles(t *testing.T) {
_, err := NewTermRenderer(
WithStandardStyle("auto"),
WithAutoStyle(),
)
if err != nil {
t.Fatal(err)
-15
View File
@@ -3,16 +3,10 @@ package glamour
//go:generate go run ./internal/generate-style-json
import (
"github.com/muesli/termenv"
"github.com/charmbracelet/glamour/ansi"
)
var (
// AutoStyleConfig is either pointing to DarkStyleConfig or LightStyleConfig
// depending on the background color of the terminal glamour is run in
AutoStyleConfig *ansi.StyleConfig
// ASCIIStyleConfig uses only ASCII characters.
ASCIIStyleConfig = ansi.StyleConfig{
Document: ansi.StyleBlock{
@@ -664,12 +658,3 @@ var (
func boolPtr(b bool) *bool { return &b }
func stringPtr(s string) *string { return &s }
func uintPtr(u uint) *uint { return &u }
func init() {
AutoStyleConfig = &LightStyleConfig
if termenv.HasDarkBackground() {
AutoStyleConfig = &DarkStyleConfig
}
DefaultStyles["auto"] = AutoStyleConfig
}