Allow adding prefix to `version-control` statusline element

Adds `config.toml` option `editor.statusline.version-control-prefix`,
to allow adding a user-defined prefix to the branch name.
This can be used to add an icon to the element.

As an additional fix, if the HEAD name is empty
the version-control element won't get drawn.
pull/6646/head
karei 2 years ago committed by karei
parent 107cdf3e43
commit 535e015266
No known key found for this signature in database
GPG Key ID: 3BB3215C07ED1E28

@ -72,6 +72,7 @@ separator = "│"
mode.normal = "NORMAL" mode.normal = "NORMAL"
mode.insert = "INSERT" mode.insert = "INSERT"
mode.select = "SELECT" mode.select = "SELECT"
version-control-prefix = "vcs: "
``` ```
The `[editor.statusline]` key takes the following sub-keys: The `[editor.statusline]` key takes the following sub-keys:
@ -84,6 +85,7 @@ The `[editor.statusline]` key takes the following sub-keys:
| `mode.normal` | The text shown in the `mode` element for normal mode | `"NOR"` | | `mode.normal` | The text shown in the `mode` element for normal mode | `"NOR"` |
| `mode.insert` | The text shown in the `mode` element for insert mode | `"INS"` | | `mode.insert` | The text shown in the `mode` element for insert mode | `"INS"` |
| `mode.select` | The text shown in the `mode` element for select mode | `"SEL"` | | `mode.select` | The text shown in the `mode` element for select mode | `"SEL"` |
| `version-control-prefix` | A prefix for the `version-control` element | `"vcs: "` |
The following statusline elements can be configured: The following statusline elements can be configured:

@ -519,8 +519,13 @@ where
.version_control_head() .version_control_head()
.unwrap_or_default() .unwrap_or_default()
.to_string(); .to_string();
if head.is_empty() {
return;
}
write(context, head, None); let config = context.editor.config.load();
let prefix = &config.statusline.version_control_prefix;
write(context, format!("{prefix}{head}"), None);
} }
fn render_register<F>(context: &mut RenderContext, write: F) fn render_register<F>(context: &mut RenderContext, write: F)

@ -468,6 +468,7 @@ pub struct StatusLineConfig {
pub right: Vec<StatusLineElement>, pub right: Vec<StatusLineElement>,
pub separator: String, pub separator: String,
pub mode: ModeConfig, pub mode: ModeConfig,
pub version_control_prefix: String,
} }
impl Default for StatusLineConfig { impl Default for StatusLineConfig {
@ -492,6 +493,7 @@ impl Default for StatusLineConfig {
], ],
separator: String::from("│"), separator: String::from("│"),
mode: ModeConfig::default(), mode: ModeConfig::default(),
version_control_prefix: String::from("vcs: "),
} }
} }
} }

Loading…
Cancel
Save