@@ -141,6 +141,9 @@ where
141141 helix_view::editor::StatusLineElement::Spinner => render_lsp_spinner,
142142 helix_view::editor::StatusLineElement::FileBaseName => render_file_base_name,
143143 helix_view::editor::StatusLineElement::FileName => render_file_name,
144+ helix_view::editor::StatusLineElement::FileModificationIndicator => {
145+ render_file_modification_indicator
146+ }
144147 helix_view::editor::StatusLineElement::FileEncoding => render_file_encoding,
145148 helix_view::editor::StatusLineElement::FileLineEnding => render_file_line_ending,
146149 helix_view::editor::StatusLineElement::FileType => render_file_type,
@@ -417,16 +420,26 @@ where
417420 .as_ref()
418421 .map(|p| p.to_string_lossy())
419422 .unwrap_or_else(|| SCRATCH_BUFFER_NAME.into());
420− format!(
421− " {}{} ",
422− path,
423− if context.doc.is_modified() { "[+]" } else { "" }
424− )
423+ format!(" {} ", path)
425424 };
426425
427426 write(context, title, None);
428427}
429428
429+fn render_file_modification_indicator<F>(context: &mut RenderContext, write: F)
430+where
431+ F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
432+{
433+ let title = (if context.doc.is_modified() {
434+ "[+]"
435+ } else {
436+ " "
437+ })
438+ .to_string();
439+
440+ write(context, title, None);
441+}
442+
430443fn render_file_base_name<F>(context: &mut RenderContext, write: F)
431444where
432445 F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
@@ -437,11 +450,7 @@ where
437450 .as_ref()
438451 .and_then(|p| p.as_path().file_name().map(|s| s.to_string_lossy()))
439452 .unwrap_or_else(|| SCRATCH_BUFFER_NAME.into());
440− format!(
441− " {}{} ",
442− path,
443− if context.doc.is_modified() { "[+]" } else { "" }
444− )
453+ format!(" {} ", path)
445454 };
446455
447456 write(context, title, None);