Skip to main content

Module diff_viewer

Module diff_viewer 

Source
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§

DiffData
Complete diff data for one or more files
DiffHunk
A hunk in a diff (a contiguous block of changes)
DiffLine
A single line in a diff
DiffViewer
Diff viewer widget
DiffViewerState
State for the diff viewer widget
DiffViewerStyle
Style configuration for diff viewer

Enums§

DiffLineType
Type of diff line
DiffViewMode
View mode for displaying diffs
DiffViewerAction
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