Support 'auto' style to make it accessible by the Render(Bytes) helper function

This commit is contained in:
Christian Muehlhaeuser
2020-04-08 10:08:03 +02:00
parent ba2d2a0ec5
commit e6a28b4fba
2 changed files with 15 additions and 9 deletions
+8 -9
View File
@@ -114,15 +114,7 @@ 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
}
return WithStandardStyle("auto")
}
// WithStylePath sets a TermRenderer's style from stylePath. stylePath is first
@@ -216,6 +208,13 @@ func (tr *TermRenderer) RenderBytes(in []byte) ([]byte, error) {
}
func getDefaultStyle(style string) (*ansi.StyleConfig, error) {
if style == "auto" {
if termenv.HasDarkBackground() {
return &DarkStyleConfig, nil
}
return &LightStyleConfig, nil
}
styles, ok := DefaultStyles[style]
if !ok {
return nil, fmt.Errorf("%s: style not found", style)
+7
View File
@@ -97,6 +97,13 @@ func TestStyles(t *testing.T) {
if err != nil {
t.Fatal(err)
}
_, err = NewTermRenderer(
WithStandardStyle("auto"),
)
if err != nil {
t.Fatal(err)
}
}
func TestRenderHelpers(t *testing.T) {