* Quote initial commands to make it possible to easily use hishtory to find matching entries for already typed commands that contain flags
* Add test for quoting dashes
* Fix test failures
* More test fixes
* Update goldens
* Update goldens
* Update goldens
* Fix race condition
* Fix test harness bug by swapping to splitn
* Update goldens
* Update golden
* Update test
This is a tricky bug to fix because the width of a tab character varies depending on context. This means that when we're trying to build a table and calculating the width of columns for budgeting, we can't actually know the width of a tab without knowing exactly what characters come before it. This is in theory doable, but it leads to some really complex code that I'd rather not adopt.
* Add support for custom key bindings for #190
* Add tests for configuring custom key bindings
* Simplify key bindings test
* Add docs on custom key bindings + error message for unhandled actions
* Add ability to configure a default filter (for #76)
* Add test for color of default filter
* Add basic test for default filter
* Add goldens for tests
* Add more tests for default filters
* Update goldens
* Add another golden
* Update goldens
* Remove debug log
* Add golden to allowlist
* Update goldens
* Add support for configuring the TUI color scheme, for #134
* Add tests for getting and setting the custom color scheme, and support full colors where terminals support them
* Add comments to document termenv.ANSI setting, and fix tests so they work uniformly
The previous method of filtering duplicates only worked on duplicates that occurred consecutively. Since dupes happen out of order often, this switches the logic to instead use a map of seen commands and filter based on that.
* Make TUI always take exactly the full width of the terminal through more precise calculations of the overhead used for the table
* Update TUI goldens for more accurate TUI sizing
* More golden updates for wider table sizing
* Include failed test goldens as artifacts for easier test fixing on github actions
If someone types in "l" and then "s" to search for "ls", then this will dispatch two async queries. If the query for "l" finishes after the query for "ls", then this will lead to the results for "l" getting incorrectly displayed. In practice, this is quite rare for human typing speeds so I had never noticed this. But, it causes an issue for test flakes and is the root cause of many of my recent changes around test flakes. Fixing this should improve test reliability significantly.