Reflowable Terminal Tables
ASCII already has 'tabulation' characters beyond 'tab'.
^I | 09 | 09 | HT | ␉ | Character Tabulation, Horizontal Tabulation | \t | Position to the next character tab stop. ^K | 11 | 0B | VT | ␋ | Line Tabulation, Vertical Tabulation | \v | Position the form at the next line tab stop.
H | 136 | 88 | HTS | Character Tabulation Set Horizontal Tabulation Set | Causes a character tabulation stop to be set at the active position. I | 137 | 89 | HTJ | Character Tabulation With Justification Horizontal Tabulation With Justification | Similar to Character Tabulation, except that instead of spaces or lines being placed after the preceding characters until the next tab stop is reached, the spaces or lines are placed preceding the active field so that the preceding graphic character is placed just before the next tab stop. J | 138 | 8A | VTS | Line Tabulation Set Vertical Tabulation Set | Causes a line tabulation stop to be set at the active position.
HT would be used to go to the next column. VT would be to go the the next row (starting at the first column).
Not totally sure how the rest would be used.
HTS & VTS could be used to manually define cell lengths, but how would that make sense for auto-wraping? Maybe it would just disable it.
Is the default auto wrapping or the 'usual' 8 column tabstops w/ line wrapping?
Does auto wrapping need to be 'enabled' somehow or is the existence of a VT enough to go on?
How do you actually HTS and VTS? I think you emit the character when your cursor is where yo want the stop to be. How exactly does that function? Especially for VT, what's the reference point? Can it be unset?
This would be useful for things that are actually tables, but could also be useful for things like log log output lines that clearly delineate new log lines from wrap lines.
For the log line use case, it would probably be useful to define how cells overflow. e.g.:
Default Cell Overflow:
thog | 2023/11/27 18:45:56 "POST /api/posts/alf2o9ulbz"
200 9.464619ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
thog | 2023/11/27 18:45:56 "GET /d/alf2o9ulbz" 200
3.942241ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
thog | 2023/11/27 18:46:06 "GET /d/alf2o9ulbz/edit" 200
1.413491ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
'Indented Wrapping':
thog | 2023/11/27 18:45:56 "POST /api/posts/alf2o9ulbz"
200 9.464619ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
thog | 2023/11/27 18:45:56 "GET /d/alf2o9ulbz" 200
3.942241ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
thog | 2023/11/27 18:46:06 "GET /d/alf2o9ulbz/edit" 200
1.413491ms "Mozilla/5.0 (X11; Linux x86_64; rv:120.0)
Gecko/20100101 Firefox/120.0"
Where the latter could be achieved with an HT of 8 and a VT of 1.
Ref