From 393c28566206b4a077be3cfb0e4e931544f0709e Mon Sep 17 00:00:00 2001 From: Akshay Date: Tue, 26 Oct 2021 19:16:52 +0530 Subject: fix single fix command --- bin/src/main.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'bin/src/main.rs') diff --git a/bin/src/main.rs b/bin/src/main.rs index 9c57d91..cbf2601 100644 --- a/bin/src/main.rs +++ b/bin/src/main.rs @@ -55,8 +55,21 @@ fn _main() -> Result<(), StatixErr> { let path = single_config.target; let src = std::fs::read_to_string(&path).map_err(SingleFixErr::InvalidPath)?; let (line, col) = single_config.position; - let single_result = fix::single(line, col, &src)?; - std::fs::write(&path, &*single_result.src).map_err(SingleFixErr::InvalidPath)?; + let single_fix_result = fix::single(line, col, &src)?; + if single_config.diff_only { + let text_diff = TextDiff::from_lines(src.as_str(), &single_fix_result.src); + let old_file = format!("{}", path.display()); + let new_file = format!("{} [fixed]", path.display()); + println!( + "{}", + text_diff + .unified_diff() + .context_radius(4) + .header(&old_file, &new_file) + ); + } else { + std::fs::write(&path, &*single_fix_result.src).map_err(SingleFixErr::InvalidPath)?; + } } } Ok(()) -- cgit v1.2.3