Added CWD option for editor.statusline

This commit is contained in:
Sam Rees 2024-01-09 13:48:40 +00:00
parent 84e24b33dc
commit 97968debe8
2 changed files with 24 additions and 0 deletions

View File

@ -162,6 +162,7 @@ fn get_render_function<F>(element_id: StatusLineElementID) -> impl Fn(&mut Rende
helix_view::editor::StatusLineElement::Spacer => render_spacer,
helix_view::editor::StatusLineElement::VersionControl => render_version_control,
helix_view::editor::StatusLineElement::Register => render_register,
helix_view::editor::StatusLineElement::WorkingDirectory => render_cwd,
}
}
@ -514,3 +515,23 @@ fn render_register<F>(context: &mut RenderContext, write: F)
write(context, format!(" reg={} ", reg), None)
}
}
fn render_cwd<F>(context: &mut RenderContext, write: F)
where
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
{
let cwd = std::env::current_dir();
let title: String = match cwd {
// Errors converting resolve to String::Default
Ok(path) => path
.iter()
.last()
.unwrap_or_default()
.to_owned()
.into_string()
.unwrap_or_default(),
Err(_) => "".into(),
};
write(context, title, None);
}

View File

@ -524,6 +524,9 @@ pub enum StatusLineElement {
/// Indicator for selected register
Register,
/// Current Working Directory
WorkingDirectory,
}
// Cursor shape is read and used on every rendered frame and so needs