feat!: allow different separators to be applied individually to the left and right sides of the status bar (#2313)

This commit is contained in:
PFiS 2025-02-11 20:05:18 +08:00 committed by GitHub
parent ce9092e73e
commit a4dde6a848
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 36 additions and 30 deletions

View file

@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" }
# : Status bar {{{
[status]
overall = {}
separator_open = ""
separator_close = ""
# Progress
progress_label = { bold = true }
progress_normal = { fg = "blue", bg = "black" }
progress_error = { fg = "red", bg = "black" }
overall = {}
sep_left = { open = "", close = "" }
sep_right = { open = "", close = "" }
# Permissions
perm_sep = { fg = "darkgray" }
@ -92,6 +87,11 @@ perm_read = { fg = "yellow" }
perm_write = { fg = "red" }
perm_exec = { fg = "cyan" }
# Progress
progress_label = { bold = true }
progress_normal = { fg = "blue", bg = "black" }
progress_error = { fg = "red", bg = "black" }
# : }}}

View file

@ -76,14 +76,9 @@ unset_alt = { fg = "red", bg = "gray" }
# : Status bar {{{
[status]
overall = {}
separator_open = ""
separator_close = ""
# Progress
progress_label = { bold = true }
progress_normal = { fg = "blue", bg = "black" }
progress_error = { fg = "red", bg = "black" }
overall = {}
sep_left = { open = "", close = "" }
sep_right = { open = "", close = "" }
# Permissions
perm_sep = { fg = "darkgray" }
@ -92,6 +87,11 @@ perm_read = { fg = "yellow" }
perm_write = { fg = "red" }
perm_exec = { fg = "cyan" }
# Progress
progress_label = { bold = true }
progress_normal = { fg = "blue", bg = "black" }
progress_error = { fg = "red", bg = "black" }
# : }}}

View file

@ -93,14 +93,9 @@ struct Mode {
#[derive(Deserialize, Serialize)]
struct Status {
pub overall: Style,
pub separator_open: String,
pub separator_close: String,
// Progress
pub progress_label: Style,
pub progress_normal: Style,
pub progress_error: Style,
pub overall: Style,
pub sep_left: StatusSep,
pub sep_right: StatusSep,
// Permissions
pub perm_sep: Style,
@ -108,6 +103,17 @@ struct Status {
pub perm_read: Style,
pub perm_write: Style,
pub perm_exec: Style,
// Progress
pub progress_label: Style,
pub progress_normal: Style,
pub progress_error: Style,
}
#[derive(Deserialize, Serialize)]
struct StatusSep {
pub open: String,
pub close: String,
}
#[derive(Deserialize, Serialize, Validate)]

View file

@ -40,9 +40,9 @@ function Status:mode()
local style = self:style()
return ui.Line {
ui.Span(THEME.status.separator_open):fg(style.main.bg):bg("reset"),
ui.Span(THEME.status.sep_left.open):fg(style.main.bg):bg("reset"),
ui.Span(" " .. mode .. " "):style(style.main),
ui.Span(THEME.status.separator_close):fg(style.main.bg):bg(style.alt.bg),
ui.Span(THEME.status.sep_left.close):fg(style.main.bg):bg(style.alt.bg),
}
end
@ -55,7 +55,7 @@ function Status:size()
local style = self:style()
return ui.Line {
ui.Span(" " .. ya.readable_size(h:size() or h.cha.len) .. " "):style(style.alt),
ui.Span(THEME.status.separator_close):fg(style.alt.bg),
ui.Span(THEME.status.sep_left.close):fg(style.alt.bg),
}
end
@ -115,7 +115,7 @@ function Status:percent()
local style = self:style()
return ui.Line {
ui.Span(" " .. THEME.status.separator_open):fg(style.alt.bg),
ui.Span(" " .. THEME.status.sep_right.open):fg(style.alt.bg),
ui.Span(percent):style(style.alt),
}
end
@ -126,9 +126,9 @@ function Status:position()
local style = self:style()
return ui.Line {
ui.Span(THEME.status.separator_open):fg(style.main.bg):bg(style.alt.bg),
ui.Span(THEME.status.sep_right.open):fg(style.main.bg):bg(style.alt.bg),
ui.Span(string.format(" %2d/%-2d ", math.min(cursor + 1, length), length)):style(style.main),
ui.Span(THEME.status.separator_close):fg(style.main.bg):bg("reset"),
ui.Span(THEME.status.sep_right.close):fg(style.main.bg):bg("reset"),
}
end