Expand description
Code diff widget for displaying side-by-side diffs.
The main widget that renders diff hunks in a side-by-side or unified view, similar to VS Code’s diff viewer. Optionally includes an integrated file tree sidebar for multi-file diffs.
§Structure
CodeDiff- The main diff widget structconstructors- Constructor functions (new,from_unified_diff,from_multi_file_diff)methods- Instance methods for configuration and data accesstraits- Trait implementations (Widget,Default)
§Example
use ratatui_toolkit::code_diff::CodeDiff;
let diff_text = r#"
--- a/file.txt
+++ b/file.txt
@@ -1,4 +1,5 @@
context line
-removed line
+added line
more context
"#;
let widget = CodeDiff::from_unified_diff(diff_text);§Multi-file diff with sidebar
use ratatui_toolkit::code_diff::{CodeDiff, DiffConfig};
use ratatui_toolkit::widgets::code_diff::diff_file_tree::FileStatus;
let diff = CodeDiff::new()
.with_config(DiffConfig::new().sidebar_enabled(true))
.with_file("src/lib.rs", FileStatus::Modified, "--- a/src/lib.rs\n+++ b/src/lib.rs\n...")
.with_file("src/new.rs", FileStatus::Added, "--- /dev/null\n+++ b/src/new.rs\n...");Modules§
- constructors
- Constructor functions for
CodeDiff. - methods
- Instance methods for
CodeDiff. - traits
- Trait implementations for
CodeDiff.
Structs§
- Code
Diff - A widget for displaying code diffs in a terminal UI.