diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs
index f9480dd4..4daf82fc 100644
--- a/helix-term/src/ui/mod.rs
+++ b/helix-term/src/ui/mod.rs
@@ -38,7 +38,7 @@ pub fn file_picker(root: &str) -> Picker<PathBuf> {
         files.take(MAX).collect(),
         |path: &PathBuf| {
             // format_fn
-            path.strip_prefix("./").unwrap().to_str().unwrap()
+            path.strip_prefix("./").unwrap().to_str().unwrap().into()
         },
         |editor: &mut Editor, path: &PathBuf| {
             let size = editor.view().unwrap().size;
@@ -56,11 +56,17 @@ pub fn buffer_picker(views: &[View], current: usize) -> Picker<(Option<PathBuf>,
             .enumerate()
             .map(|(i, view)| (view.doc.relative_path().map(Path::to_path_buf), i))
             .collect(),
-        |(path, index): &(Option<PathBuf>, usize)| {
+        move |(path, index): &(Option<PathBuf>, usize)| {
             // format_fn
             match path {
-                Some(path) => path.to_str().unwrap(),
-                None => "[NEW]",
+                Some(path) => {
+                    if *index == current {
+                        format!("{} (*)", path.to_str().unwrap()).into()
+                    } else {
+                        path.to_str().unwrap().into()
+                    }
+                }
+                None => "[NEW]".into(),
             }
         },
         |editor: &mut Editor, &(_, index): &(Option<PathBuf>, usize)| {
diff --git a/helix-term/src/ui/picker.rs b/helix-term/src/ui/picker.rs
index 94eec2eb..4190e548 100644
--- a/helix-term/src/ui/picker.rs
+++ b/helix-term/src/ui/picker.rs
@@ -10,6 +10,8 @@ use tui::{
 use fuzzy_matcher::skim::SkimMatcherV2 as Matcher;
 use fuzzy_matcher::FuzzyMatcher;
 
+use std::borrow::Cow;
+
 use crate::ui::{Prompt, PromptEvent};
 use helix_core::Position;
 use helix_view::Editor;
@@ -25,14 +27,14 @@ pub struct Picker<T> {
     // pattern: String,
     prompt: Prompt,
 
-    format_fn: Box<dyn Fn(&T) -> &str>,
+    format_fn: Box<dyn Fn(&T) -> Cow<str>>,
     callback_fn: Box<dyn Fn(&mut Editor, &T)>,
 }
 
 impl<T> Picker<T> {
     pub fn new(
         options: Vec<T>,
-        format_fn: impl Fn(&T) -> &str + 'static,
+        format_fn: impl Fn(&T) -> Cow<str> + 'static,
         callback_fn: impl Fn(&mut Editor, &T) + 'static,
     ) -> Self {
         let prompt = Prompt::new(
@@ -82,7 +84,7 @@ impl<T> Picker<T> {
                     let text = (format_fn)(option);
                     // TODO: using fuzzy_indices could give us the char idx for match highlighting
                     matcher
-                        .fuzzy_match(text, pattern)
+                        .fuzzy_match(&text, pattern)
                         .map(|score| (index, score))
                 }),
         );