bestls 1.5.0

A fast and colorful Rust-based ls replacement CLI tool with JSON output and sorting options.
# โœ… Roadmap for `bestls`

A structured and professional development plan for future enhancements to the `bestls` CLI tool.

---

## ๐Ÿ” v1.1 โ€“ Hidden Files & Permissions

- [x] Add `--all` / `-a` flag to display hidden files
- [x] Display Unix-style file permissions
- [x] Show file owner and group information (via `users` crate)
- [x] Refactor table output to include new columns

---

## โš™๏ธ v1.2 โ€“ Shell Completions โœ…

- [x] Add shell completions (via `clap_complete`)
- [x] Support `completion` subcommand for generating completions
- [x] Integration with Bash, Zsh, and Fish shells
- [x] Added completion installation instructions

---

## โœ… v1.3 โ€“ Tree View & Filtering

- [x] Add `--tree` flag for recursive directory listing
- [x] Implement depth limit with `--depth <n>`
- [x] Add filtering options:
  - [x] `--filter-ext <ext>` (comma-separated extensions)
  - [x] `--filter-name <pattern>` (glob-style patterns)
- [x] Add size-based filters with human-readable units:
  - [x] `--min-size <size>` (e.g., 1KB, 1MB, 100B)
  - [x] `--max-size <size>` (e.g., 1KB, 1MB, 100B)

---

## โœ… v1.4 โ€“ Output Customization

- [x] Add `--compact` for minimal single-column output (like `ls -1`)
- [x] Add `--columns name,size,date,...` to customize visible columns
- [x] Add `--out <file>` option to export output
- [x] Add `--format json|table` override for flexible output formats
- [x] Add `--no-color` flag to disable colored output

---

## โœ… v1.5 โ€“ Color & Theme

- [x] Color code files by extension
- [x] Theme support via `~/.config/bestls/config.toml`
- [x] Add `--no-color` flag to disable colors
- [x] Theme management CLI commands (`theme init`, `theme path`, `theme reset`)
- [x] Default extension color mappings (16+ file types)

---

## ๐Ÿ”ง v1.6 โ€“ Advanced Configuration

- [ ] Load default settings from config file (`TOML`/`JSON`)
- [ ] Support default sorting, columns, and color scheme via config
- [ ] Add `--config <path>` to specify custom config file location
- [ ] Environment variable support for common options

---

## ๐Ÿงช Internal Improvements

- [ ] Add integration tests (`assert_cmd`, `tempdir`)
- [ ] Write unit tests for sorting and formatting logic
- [ ] Add benchmarks with `criterion`

---

## ๐ŸŒ Community & Ecosystem

- [ ] Add `CONTRIBUTING.md` guidelines
- [ ] Enable GitHub Discussions & issue templates
- [ ] Publish package to AUR (PKGBUILD)
- [ ] Improve `crates.io` metadata
- [ ] Maintain `CHANGELOG.md`

---

## ๐Ÿงฑ v2.0 โ€“ Plugin Architecture

- [ ] Design extensible plugin system
- [ ] Support column and filter plugins
- [ ] Enable dynamic `.so` / `.dll` modules or subcommand extensions

---

## ๐Ÿ“ฆ Distribution

- [ ] Add precompiled binaries to GitHub releases
- [ ] Create a Homebrew formula for macOS users
- [ ] Provide Snap and AppImage support for Linux distributions