feat: Build help text based on terminal width, adjust column widths dynamically #761
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds
maxTableWidth
andcolRigidity
options toTableSettings
, allowing the table renderer to target a particular maximum width.colRigidity
is a parameter where1
indicates that the column width should not be reduced, and0
that it can be adjusted arbitrarily. I made it a number instead of a bool, since it seems plausible to allow for a0.5
to be reduced by half the amount of a0
, but I only implemented0
and1
.I then use this to update the help text generation, which is constrained to use the terminal width as the maximum width. I make the first columns rigid, as the descriptions and types are more likely to take up space and more tolerant to line breaks.
I hope this is reasonable. It dramatically improves the help text for my tool.
Before (regardless of terminal width):
After (88 columns)
142 columns