feat(horizontal layout): add horizontal grid view for list #871
+355
−25
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.
Check #870 for reasoning.
Added horizontal grid layout to the list, you can enable it via
list.SetHorizontalEnabled(true). It changes how items are displayed torows x columnsview. It calculates how many columns fit on the screen based on newWidth()function in theDelegate. Then based on that calculates how many items are on the page:rows * columns.Render itself goes for each row and then each column in a loop, writes item to
string.Builderthenlipgloss.JoinHorizontalwith string for the row which contains previous items then clearsstring.Builder, loop goes again for each column.Added new keybindings for moving horizontally,
CursorLeftandCursorRightrespectively.Also, added new test which checks for right positions of the items.
Test example
CONTRIBUTING.md.