Expand description
Diff viewer widget
A scrollable diff viewer with unified and side-by-side modes, syntax highlighting, search functionality, and hunk navigation.
§Example
use ratatui_interact::components::{DiffViewer, DiffViewerState, DiffData};
use ratatui::layout::Rect;
// Parse a unified diff
let diff_text = r#"
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,4 @@
context line
-removed line
+added line
+another added line
more context
"#;
let diff = DiffData::from_unified_diff(diff_text);
let mut state = DiffViewerState::new(diff);
// Create viewer
let viewer = DiffViewer::new(&state)
.title("Changes");Structs§
- Diff
Data - Complete diff data for one or more files
- Diff
Hunk - A hunk in a diff (a contiguous block of changes)
- Diff
Line - A single line in a diff
- Diff
Viewer - Diff viewer widget
- Diff
Viewer State - State for the diff viewer widget
- Diff
Viewer Style - Style configuration for diff viewer
Enums§
- Diff
Line Type - Type of diff line
- Diff
View Mode - View mode for displaying diffs
- Diff
Viewer Action - Actions that can be triggered by diff viewer interactions
Functions§
- handle_
diff_ viewer_ key - Handle keyboard input for diff viewer
- handle_
diff_ viewer_ mouse - Handle mouse input for diff viewer