feat: configure interchangeable top and bottom bars

This commit is contained in:
Valdemar Lorenzen
2026-10-12 11:47:31 +02:00
parent 4cfd068f1c
commit 0d3fbc01f8
12 changed files with 776 additions and 340 deletions
+7 -5
View File
@@ -221,7 +221,7 @@ impl EditorSession {
}
editor.set_diff_context_options(config.diff_context_lines, config.diff_expand_lines);
if let Err(error) =
editor.set_chrome_config(config.tabline, config.statusline, config.labels)
editor.set_chrome_config(config.top_bar, config.bottom_bar, config.labels)
{
notices.push(format!("chrome: {error}"));
}
@@ -3016,16 +3016,18 @@ end
let session = fixture.open(
r#"
Vamp.configure do |config|
config.tabline = {right: [:battery]}
config.statusline = {center: [:workspace]}
config.bar.top = {left: [:mode, :language], right: [:battery]}
config.bar.bottom = {left: [:tabs], center: [:workspace]}
config.labels = {battery: "bat 38%", workspace: "tools\n"}
end
"#,
);
assert_eq!(session.editor.label("battery"), "bat 38%");
assert_eq!(session.editor.label("workspace"), "tools�");
assert_eq!(session.editor.tabline_config().right, ["battery"]);
assert_eq!(session.editor.statusline_config().center, ["workspace"]);
assert_eq!(session.editor.top_bar_config().left, ["mode", "language"]);
assert_eq!(session.editor.top_bar_config().right, ["battery"]);
assert_eq!(session.editor.bottom_bar_config().left, ["tabs"]);
assert_eq!(session.editor.bottom_bar_config().center, ["workspace"]);
assert_eq!(session.editor.lines(), ["source"]);
assert_eq!(session.editor.text_revision(), 0);
assert!(!session.editor.dirty());