Module widget

Module widget 

Source
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 struct
  • constructors - Constructor functions (new, from_unified_diff, from_multi_file_diff)
  • methods - Instance methods for configuration and data access
  • traits - 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§

CodeDiff
A widget for displaying code diffs in a terminal UI.