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.
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

View file

@ -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.

View file

@ -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]

View file

@ -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