ogham / exa

A modern replacement for ‘ls’.
https://the.exa.website/
MIT License
23.45k stars 658 forks source link

Feature Request: summary by extensions in trees #1208

Open nim65s opened 1 year ago

nim65s commented 1 year ago

Hi,

Thanks for this project !

I'm looking for a way to get a more concise overview of a tree. This would be useful to avoid scrolling too much or even exceed shell history on big trees. It would also help drawing a less cluttered version of a tree in a documentation page, or a small enough one to fit on a slide.

I think we could regroup files by extensions, when multiple similar ones are found in same folder, eg. from:

.
├── CMakeLists.txt
├── doc
│  ├── book.toml
│  └── src
│     ├── bin.md
│     ├── lib.md
│     ├── meshes.md
│     ├── README.md
│     ├── SUMMARY.md
│     └── textures.md
├── include
│  └── my-project
│     ├── fwd.hpp
│     ├── meshes
│     │  ├── dump.hpp
│     │  ├── load.hpp
│     │  └── process.hpp
│     ├── my-project.hpp
│     └── textures
│        ├── dump.hpp
│        ├── load.hpp
│        └── validate.hpp
├── lib
│  ├── libmy_project.so
│  └── python3.11
│     └── site-packages
│        └── my_project
│           ├── __init__.py
│           ├── helpers.py
│           ├── meshes.py
│           ├── textures.py
│           └── my_project.so
├── pyproject.toml
├── README.md
├── share
│  └── my-project
│     ├── meshes
│     │  ├── base.stl
│     │  └── tool.stl
│     └── textures
│        ├── base.png
│        └── tool.png
└── src
   ├── lib.cpp
   ├── main.cpp
   ├── meshes
   │  ├── dump.cpp
   │  ├── load.cpp
   │  └── process.cpp
   └── texures
      ├── dump.cpp
      ├── load.cpp
      └── process.cpp

to:

├── CMakeLists.txt
├── doc
│  ├── book.toml
│  └── src
│     └── *.md x6
├── include
│  └── my-project
│     ├── *.hpp x2
│     ├── meshes
│     │  └── *.hpp x3
│     └── textures
│        └── *.hpp x3
├── lib
│  ├── libmy_project.so
│  └── python3.11
│     └── site-packages
│        └── my_project
│           ├── *.py x4
│           └── my_project.so
├── pyproject.toml
├── README.md
├── share
│  └── my-project
│     ├── meshes
│     │  └── *.stl x2
│     └── textures
│        └── *.png x2
└── src
   ├── *.cpp x2
   ├── meshes
   │  └── *.cpp x3
   └── texures
      └── *.cpp x3

I think this would also help to improve the signal/noise ratio in directories where hundreds of similar files are generated, while they are probably not what we are looking for, or at least not individually.

PS: This would also fit well with the --icons flag