From 99d442ab8a61691dda01844780ffcfe4048efd15 Mon Sep 17 00:00:00 2001 From: bluthej Date: Fri, 18 Apr 2025 23:37:23 +0200 Subject: [PATCH] Substitute filename in format command arguments --- helix-view/src/document.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 92c1e3ca0..bff4019cf 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -814,8 +814,22 @@ impl Document { process.current_dir(doc_dir); } + let filename_in_args = fmt_args.iter().any(|arg| arg.contains("{}")); + let fmt_args = filename_in_args + .then_some(self.path().map(|path| { + let path = path.to_string_lossy(); + Cow::Owned( + fmt_args + .iter() + .map(|arg| arg.replace("{}", &path)) + .collect(), + ) + })) + .flatten() + .unwrap_or(Cow::Borrowed(fmt_args)); + process - .args(fmt_args) + .args(fmt_args.as_ref()) .stdin(Stdio::piped()) .stdout(Stdio::piped()) .stderr(Stdio::piped());