Set 'Clear' to #[none] (#108)

* Cosmetics

* Default 'Clear' style is now #[none]

None actually resets all attributes.

* Always append the Clear attribute to gitmux status string

Fix #107
This commit is contained in:
Aurélien Rainone 2024-01-02 20:00:48 +01:00 committed by GitHub
parent 076c75ffd4
commit b821624bad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 15 deletions

View file

@ -32,7 +32,7 @@ tmux:
# https://man7.org/linux/man-pages/man1/tmux.1.html#STYLES. # https://man7.org/linux/man-pages/man1/tmux.1.html#STYLES.
styles: styles:
# Clear previous style. # Clear previous style.
clear: "#[fg=default]" clear: "#[none]"
# Special tree state strings such as [rebase], [merge], etc. # Special tree state strings such as [rebase], [merge], etc.
state: "#[fg=red,bold]" state: "#[fg=red,bold]"
# Local branch name # Local branch name

View file

@ -4,8 +4,9 @@ import (
_ "embed" _ "embed"
"fmt" "fmt"
"github.com/arl/gitmux/tmux"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"github.com/arl/gitmux/tmux"
) )
// Config configures output formatting. // Config configures output formatting.

View file

@ -51,4 +51,4 @@ with some different content
-- empty_file -- -- empty_file --
-- output.golden -- -- output.golden --
#[fg=default]#[fg=default]#[fg=white,bold]⎇ #[fg=default]#[fg=white,bold]main#[fg=default] - #[fg=default]#[fg=green,bold]● 1 #[fg=red,bold]✚ 1 #[fg=cyan,bold]⚑ 1 #[fg=magenta,bold]… 2#[fg=default,bg=default] #[none]#[none]#[fg=white,bold]⎇ #[none]#[fg=white,bold]main#[none] - #[none]#[fg=green,bold]● 1 #[fg=red,bold]✚ 1 #[fg=cyan,bold]⚑ 1 #[fg=magenta,bold]… 2#[fg=default,bg=default]#[none]

View file

@ -85,11 +85,11 @@ func (d *direction) UnmarshalYAML(value *yaml.Node) error {
} }
type options struct { type options struct {
BranchMaxLen int `yaml:"branch_max_len"` BranchMaxLen int `yaml:"branch_max_len"`
BranchTrim direction `yaml:"branch_trim"` BranchTrim direction `yaml:"branch_trim"`
Ellipsis string `yaml:"ellipsis"` Ellipsis string `yaml:"ellipsis"`
HideClean bool `yaml:"hide_clean"` HideClean bool `yaml:"hide_clean"`
SwapDivergence bool `yaml:"swap_divergence"` SwapDivergence bool `yaml:"swap_divergence"`
} }
// A Formater formats git status to a tmux style string. // A Formater formats git status to a tmux style string.
@ -135,6 +135,8 @@ func truncate(s, ellipsis string, max int, dir direction) string {
// Format writes st as json into w. // Format writes st as json into w.
func (f *Formater) Format(w io.Writer, st *gitstatus.Status) error { func (f *Formater) Format(w io.Writer, st *gitstatus.Status) error {
defer fmt.Fprintf(w, "%s", f.Styles.Clear)
f.st = st f.st = st
// Overall working tree state // Overall working tree state
@ -241,11 +243,11 @@ func (f *Formater) divergence() string {
return "" return ""
} }
behind := "" behind := ""
ahead := "" ahead := ""
s := f.Styles.Clear + f.Styles.Divergence s := f.Styles.Clear + f.Styles.Divergence
if f.st.BehindCount != 0 { if f.st.BehindCount != 0 {
behind = fmt.Sprintf("%s%d", f.Symbols.Behind, f.st.BehindCount) behind = fmt.Sprintf("%s%d", f.Symbols.Behind, f.st.BehindCount)
} }
if f.st.AheadCount != 0 { if f.st.AheadCount != 0 {
@ -253,11 +255,11 @@ func (f *Formater) divergence() string {
} }
if !f.Options.SwapDivergence { if !f.Options.SwapDivergence {
// Behind first, ahead second // Behind first, ahead second
s += behind + ahead s += behind + ahead
} else { } else {
// Ahead first, behind second // Ahead first, behind second
s += ahead + behind s += ahead + behind
} }
return s return s