Module file_tree

Module file_tree 

Source
Expand description

Diff file tree widget for displaying changed files.

A tree view widget for displaying changed files in a diff, similar to gitui’s unstaged changes panel or VS Code’s source control view.

This implementation wraps the generic TreeView component for simplified code.

§Features

  • Hierarchical display: Groups files by directory structure
  • Status markers: Visual indicators for file status (M, +, -, R)
  • Collapsible directories: Expand/collapse with keyboard
  • Color coding: Green (added), yellow (modified), red (deleted), blue (renamed)
  • Keyboard navigation: Uses TreeView’s navigation

§Structure

§Example

use ratatui_toolkit::widgets::code_diff::diff_file_tree::{DiffFileTree, FileStatus};

let files = vec![
    ("src/lib.rs", FileStatus::Modified),
    ("src/utils/helper.rs", FileStatus::Added),
    ("src/old_module.rs", FileStatus::Deleted),
];

let tree = DiffFileTree::from_paths(&files);

// Render with ratatui Widget trait...
// frame.render_widget(&tree, area);

§Visual Style

M  src/
     lib.rs
+    utils/
+      helper.rs
-    old_module.rs

Re-exports§

pub use helpers::file_icon;

Modules§

constructors
Constructors for DiffFileTree.
helpers
Helper functions for diff file tree.
methods
Methods for DiffFileTree.
traits
Trait implementations for DiffFileTree.

Structs§

DiffFileEntry
A single file or directory entry in a diff tree.
DiffFileTree
A tree widget for displaying changed files in a diff.

Enums§

FileStatus
The modification status of a file in a diff.