@@ -55,6 +55,7 @@ $ smart-tree
5555- ** Immediately spot what matters** - Recent changes and important files stand out
5656- ** Project-aware** - Understands different project types (Rust, JavaScript, Python, etc.)
5757- ** No visual clutter** - Automatically filters system directories like ` .git ` and ` node_modules `
58+ - ** Smart rule system** - Uses context-aware rules to decide what to show and what to hide
5859- ** Rich context** - File sizes, modification times, and directory statistics
5960- ** Beautiful visualization** - Color-coded file types and emoji icons
6061- ** Lightning fast** - Navigates even massive repositories with ease
@@ -88,7 +89,50 @@ Smart Tree's context-preserving output is ideal for AI assistants like GitHub Co
8889smart-tree --max-lines 25 --detailed
8990```
9091
91- ### 4. Repository Exploration
92+ ### 4. Smart Filtering for Different Project Types
93+
94+ ```
95+ $ smart-tree --list-rules
96+ Available filtering rules:
97+
98+ gitignore - Files/directories matched by .gitignore patterns
99+ vcs - Version control system directories (.git, .svn, .hg, .jj)
100+ build_output - Build output directories (target, dist, build)
101+ dependencies - Dependency directories (node_modules, venv)
102+ dev_environment - Development environment configs (.vscode, .idea)
103+
104+ Usage examples:
105+
106+ --disable-rule vcs # Show VCS directories
107+ --disable-rule dependencies # Show dependency directories
108+ --show-hidden # Show all items that would be filtered
109+ ```
110+
111+ Smart Tree understands your project's context and automatically applies the most appropriate filtering rules for your specific language or framework:
112+
113+ ```
114+ $ smart-tree
115+ .
116+ ├── .git (1 files, 1.0MB, modified just now) [folded: system]
117+ ├── .gitignore (13B, modified just now)
118+ ├── .vscode (1 files, 1.0MB, modified just now) [folded: system]
119+ ├── Cargo.toml (0B, modified just now)
120+ ├── README.md (0B, modified just now)
121+ ├── examples (1 files, 0B, modified just now)
122+ │ └── demo.rs (0B, modified just now)
123+ ├── file1.bak (0B, modified just now) [[gitignored]]
124+ ├── src (2 files, 0B, modified just now)
125+ │ ├── main.rs (0B, modified just now)
126+ │ └── lib.rs (0B, modified just now)
127+ └── target (10 files, 14B, modified just now) [folded: system]
128+ ```
129+
130+ The tool automatically:
131+ - Detects Rust projects by ` Cargo.toml ` and filters ` target/ ` as build output
132+ - Respects ` .gitignore ` rules (notice ` file1.bak ` is marked as gitignored)
133+ - Identifies and filters system directories like ` .git ` and ` .vscode `
134+
135+ ### 5. Repository Exploration
92136
93137``` bash
94138$ smart-tree --emoji --color-sizes --color-theme dark
@@ -138,12 +182,21 @@ smart-tree -L 3
138182# Show system directories (like .git, node_modules, etc.)
139183smart-tree --show-system-dirs
140184
185+ # Show items that would normally be filtered out
186+ smart-tree --show-hidden
187+
141188# Customize filtering rules
142189smart-tree --disable-rule vcs --disable-rule build_output
143190
144191# List all available rules
145192smart-tree --list-rules
146193
194+ # Show details about rule application
195+ smart-tree --rule-debug
196+
197+ # Disable all rules completely
198+ smart-tree --no-rules
199+
147200# Show help with all options
148201smart-tree --help
149202```
0 commit comments