131 Initial implementation of table balancing #159
Merged
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.
textcomponent.rs
:transform_table
, which finds widths / heights of each cell based on some balancing formula, and splits any word which wrap within a cell.word_wrapping
, returning a list where each entry fits within a single linemarkdown_renderer.rs
Reimplementsrender_table
, using widths / heights and clipping to determine how many rows in each cell should be rendered (otherwise the cell will not be rendered(?)).parser.rs
andmd.pest
:Remaining work / considerations:
Copy
-trait onTextNode
enumTextNode
is part ofTextComponent
, which is already expensive to duplicate, i think is it a reasonable place to store the dynamically sized Table information, and improves some of the implicit handling of themeta_info
struct (seecontent_as_lines
andselected_heights
).