douglasg14b / BetterConsoleTables

Faster, colorable, more configurable, and more robust console colors & tables for C# console applications
GNU Lesser General Public License v3.0
92 stars 16 forks source link

Multiline support in a Cell #27

Open TomBruns opened 2 years ago

TomBruns commented 2 years ago

Does this library support formatting cells with multiple lines?

I tried embedding System.Environment.NewLine but that corrupted the table format

douglasg14b commented 2 years ago

It does not, At the moment cells are only single lined. This is a future improvement I want to make.

TomBruns commented 2 years ago

As an alternative have you considered adding support to set the borders (ex bottom) in the AddRow method?

douglasg14b commented 2 years ago

I'm not sure what you mean?

Right now multiline is not supported because of how the tables are rendered, I'll need to modify rendering without negatively affecting performance in order to support it, and without breaking colorability. There are several different potential needs for mutiline cells, I'd want to support many options there.

Can you state your use case? It may be an easier initial implementation, depending.

TomBruns commented 2 years ago

I am effectively achieving "multi-line" cells by preferentially writing cell contents in the diagram below (note the 1st 2 columns)

image

I would like to have horizontal row dividers between the major groups (in diagram above I am substituting a blank line) I cannot use table.Config.hasInnerRows = true; since that would write a row divider between all rows. I am suggesting an option on the AddRow method to control if the bottom row border is written on that row.

douglasg14b commented 2 years ago

Ah gotcha.

I think extending the formatting API to support some level of control over divider rendering might be doable. Though there are definitely issues there, since cells share borders...

Might be easier to just add multi-line support as far as performance & logic difficulty are concerned 😆