diff --git a/.gitmux.yml b/.gitmux.yml index 010c900..4e8e059 100644 --- a/.gitmux.yml +++ b/.gitmux.yml @@ -32,7 +32,7 @@ tmux: # https://man7.org/linux/man-pages/man1/tmux.1.html#STYLES. styles: # Clear previous style. - clear: "#[fg=default]" + clear: "#[none]" # Special tree state strings such as [rebase], [merge], etc. state: "#[fg=red,bold]" # Local branch name diff --git a/config.go b/config.go index 7bd83ce..4faae2d 100644 --- a/config.go +++ b/config.go @@ -4,8 +4,9 @@ import ( _ "embed" "fmt" - "github.com/arl/gitmux/tmux" "gopkg.in/yaml.v3" + + "github.com/arl/gitmux/tmux" ) // Config configures output formatting. diff --git a/testdata/default.output.txt b/testdata/default.output.txt index b6af636..d5fb1c7 100644 --- a/testdata/default.output.txt +++ b/testdata/default.output.txt @@ -51,4 +51,4 @@ with some different content -- empty_file -- -- 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] diff --git a/tmux/formater.go b/tmux/formater.go index f57ab64..7019b93 100644 --- a/tmux/formater.go +++ b/tmux/formater.go @@ -85,11 +85,11 @@ func (d *direction) UnmarshalYAML(value *yaml.Node) error { } type options struct { - BranchMaxLen int `yaml:"branch_max_len"` - BranchTrim direction `yaml:"branch_trim"` - Ellipsis string `yaml:"ellipsis"` - HideClean bool `yaml:"hide_clean"` - SwapDivergence bool `yaml:"swap_divergence"` + BranchMaxLen int `yaml:"branch_max_len"` + BranchTrim direction `yaml:"branch_trim"` + Ellipsis string `yaml:"ellipsis"` + HideClean bool `yaml:"hide_clean"` + SwapDivergence bool `yaml:"swap_divergence"` } // 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. func (f *Formater) Format(w io.Writer, st *gitstatus.Status) error { + defer fmt.Fprintf(w, "%s", f.Styles.Clear) + f.st = st // Overall working tree state @@ -241,11 +243,11 @@ func (f *Formater) divergence() string { return "" } - behind := "" - ahead := "" + behind := "" + ahead := "" s := f.Styles.Clear + f.Styles.Divergence 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 { @@ -253,11 +255,11 @@ func (f *Formater) divergence() string { } if !f.Options.SwapDivergence { - // Behind first, ahead second - s += behind + ahead + // Behind first, ahead second + s += behind + ahead } else { - // Ahead first, behind second - s += ahead + behind + // Ahead first, behind second + s += ahead + behind } return s