Skip to main content

vtcode_diff/
lib.rs

1#![warn(missing_docs)]
2#![expect(
3    clippy::indexing_slicing,
4    clippy::string_slice,
5    reason = "validated diff indexes and UTF-8 token boundaries are structural invariants"
6)]
7//! Bounded structured text diffs and renderer-neutral preview rows.
8//!
9//! The presentation architecture and underlying ideas (unified and side-by-side
10//! terminal previews with intraline emphasis) were informed by
11//! [OpenAI Codex](https://github.com/openai/codex) (Apache-2.0). This crate is
12//! an independent implementation for VT Code; no Codex source code was copied.
13
14mod adapters;
15mod compute;
16mod display;
17mod format;
18mod intraline;
19mod layout;
20mod parse;
21mod types;
22
23pub use compute::compute_diff;
24pub use display::{count_diff_changes, display_lines_from_hunks, display_lines_from_unified_diff, side_by_side_rows};
25pub use format::{
26    diff_display_line_number_width, format_hunk_header, format_numbered_unified_diff, format_unified_diff,
27    format_unified_hunks,
28};
29pub use intraline::{annotate_word_level_diffs, compute_diff_chunks, word_level_changed_ranges};
30pub use layout::{bounded_display_lines, layout_display_lines};
31pub use types::*;
32
33#[cfg(feature = "ratatui")]
34pub use adapters::to_ratatui_lines;
35#[cfg(feature = "ansi")]
36pub use adapters::{AnsiDiffPalette, render_ansi_rows};
37
38#[cfg(test)]
39mod tests;