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.
This commit is contained in:
karei 2023-04-07 18:53:44 +03:00 committed by karei
parent 107cdf3e43
commit 535e015266
No known key found for this signature in database
GPG Key ID: 3BB3215C07ED1E28
3 changed files with 10 additions and 1 deletions

View File

@ -72,6 +72,7 @@ ### `[editor.statusline]` Section
mode.normal = "NORMAL"
mode.insert = "INSERT"
mode.select = "SELECT"
version-control-prefix = "vcs: "
```
The `[editor.statusline]` key takes the following sub-keys:
@ -84,6 +85,7 @@ ### `[editor.statusline]` Section
| `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.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:

View File

@ -519,8 +519,13 @@ fn render_version_control<F>(context: &mut RenderContext, write: F)
.version_control_head()
.unwrap_or_default()
.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)

View File

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