The loop in `width_dimensions` used an exclusive upper bound
(`..self.cells.len()`), so it never tried placing all cells on a single
row. When cells have varying widths the single-row layout can fit even
though the widest-cell estimate rules it out, producing a suboptimal
result with more rows than necessary.
Change the range to `..=self.cells.len()` and add a regression test
that catches the bug.
* optimize padding size calc
* remove separator duplication to reduce memory usage
* rework dimensions calculations
* add max possible width test
* simplify the min_columns calculation and add edge cases tests
* fix some comments and remove leftovers
* small improvements to variable names and comments
* chore(deps): update codecov/codecov-action action to v5
* add new Tabs filling and rework fmt process
* add filling_with_tabs test
* add tabs example
* update readme
* fix misspelling
* fix fmt in tests
* optimize padding size calc
* remove separator duplication to reduce memory usage
* make DEFAULT_SEPARATOR_SIZE pub
* fix padding calculation
* fix required padding is bigger than widest cell
* add next entry check before printing the separator
* update docs for tabs
* update comments
* add diff size separator with Tabs
* simplify the tabs number calculation
* update readme
* remove comments
* change last in row check to break
* fix some grammar in readme
* update docs with quotes for \t
* rename postion vars and add comment
* rename neares tab var and update comment
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
The alignment settings are unused by both uutils and eza. So we don't
need to keep them around. Everything is now left-aligned. This
simplifies the code and makes the tests easier to write, too.