mirror of https://github.com/helix-editor/helix
refactor(statusline): refactor some code following the code review
Avoid very small helper functions for the diagnositcs and inline them instead. Rename the config field `status_line` to `statusline` to remain consistent with `bufferline`.pull/2434/head
parent
2dc4d343ae
commit
5cb4e76432
|
@ -62,7 +62,7 @@ impl StatusLine {
|
|||
context.theme.get("ui.statusline.inactive")
|
||||
};
|
||||
|
||||
surface.set_style(viewport.with_height(1), base_style);
|
||||
surface.set_style(viewport, base_style);
|
||||
|
||||
let write_left = |context: &mut RenderContext, text, style| {
|
||||
Self::append(&mut context.parts.left, text, &base_style, style)
|
||||
|
@ -76,7 +76,7 @@ impl StatusLine {
|
|||
|
||||
// Left side of the status line.
|
||||
|
||||
let element_ids = &editor.config().status_line.left;
|
||||
let element_ids = &editor.config().statusline.left;
|
||||
element_ids
|
||||
.iter()
|
||||
.map(|element_id| Self::get_render_function(*element_id))
|
||||
|
@ -91,7 +91,7 @@ impl StatusLine {
|
|||
|
||||
// Right side of the status line.
|
||||
|
||||
let element_ids = &editor.config().status_line.right;
|
||||
let element_ids = &editor.config().statusline.right;
|
||||
element_ids
|
||||
.iter()
|
||||
.map(|element_id| Self::get_render_function(*element_id))
|
||||
|
@ -109,7 +109,7 @@ impl StatusLine {
|
|||
|
||||
// Center of the status line.
|
||||
|
||||
let element_ids = &editor.config().status_line.center;
|
||||
let element_ids = &editor.config().statusline.center;
|
||||
element_ids
|
||||
.iter()
|
||||
.map(|element_id| Self::get_render_function(*element_id))
|
||||
|
@ -220,47 +220,16 @@ impl StatusLine {
|
|||
});
|
||||
|
||||
if warnings > 0 {
|
||||
Self::render_diagnostics_warning_state(context, write);
|
||||
Self::render_diagnostics_warning_count(context, warnings, write);
|
||||
write(context, "●".to_string(), Some(context.theme.get("warning")));
|
||||
write(context, format!(" {} ", warnings), None);
|
||||
}
|
||||
|
||||
if errors > 0 {
|
||||
Self::render_diagnostics_error_state(context, write);
|
||||
Self::render_diagnostics_error_count(context, errors, write);
|
||||
write(context, "●".to_string(), Some(context.theme.get("error")));
|
||||
write(context, format!(" {} ", errors), None);
|
||||
}
|
||||
}
|
||||
|
||||
fn render_diagnostics_warning_state<F>(context: &mut RenderContext, write: F)
|
||||
where
|
||||
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
|
||||
{
|
||||
write(context, "●".to_string(), Some(context.theme.get("warning")));
|
||||
}
|
||||
|
||||
fn render_diagnostics_warning_count<F>(
|
||||
context: &mut RenderContext,
|
||||
warning_count: usize,
|
||||
write: F,
|
||||
) where
|
||||
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
|
||||
{
|
||||
write(context, format!(" {} ", warning_count), None);
|
||||
}
|
||||
|
||||
fn render_diagnostics_error_state<F>(context: &mut RenderContext, write: F)
|
||||
where
|
||||
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
|
||||
{
|
||||
write(context, "●".to_string(), Some(context.theme.get("error")));
|
||||
}
|
||||
|
||||
fn render_diagnostics_error_count<F>(context: &mut RenderContext, error_count: usize, write: F)
|
||||
where
|
||||
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
|
||||
{
|
||||
write(context, format!(" {} ", error_count), None);
|
||||
}
|
||||
|
||||
fn render_selections<F>(context: &mut RenderContext, write: F)
|
||||
where
|
||||
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
|
||||
|
|
|
@ -148,7 +148,7 @@ pub struct Config {
|
|||
pub auto_info: bool,
|
||||
pub file_picker: FilePickerConfig,
|
||||
/// Configuration of the statusline elements
|
||||
pub status_line: StatusLineConfig,
|
||||
pub statusline: StatusLineConfig,
|
||||
/// Shape for cursor in each mode
|
||||
pub cursor_shape: CursorShapeConfig,
|
||||
/// Set to `true` to override automatic detection of terminal truecolor support in the event of a false negative. Defaults to `false`.
|
||||
|
@ -459,7 +459,7 @@ impl Default for Config {
|
|||
completion_trigger_len: 2,
|
||||
auto_info: true,
|
||||
file_picker: FilePickerConfig::default(),
|
||||
status_line: StatusLineConfig::default(),
|
||||
statusline: StatusLineConfig::default(),
|
||||
cursor_shape: CursorShapeConfig::default(),
|
||||
true_color: false,
|
||||
search: SearchConfig::default(),
|
||||
|
|
Loading…
Reference in New Issue