Oh hey Charles... I just spent awhile combing through all my ANSI environment variables that i've put together after hours of research, and based on working BAT files with them for a year, asking people both in TCC and WT forums about why this and that are this and that...
... and have come to some conclusions. It turns out almost everything is now caught, yay.
However, .I have a ranked suggestion of codes to add to your plugin, if they aren't already. <begging emoji that can't be displayed here>
Those 2 sets of codes are:
1) Row locking ansi codes
The %[_rows] is not part of the code, but the %_ROWS TCC internal variable. You need to know it if you want to position the locked row correctly, it just has to be
a number, as in regex \d{1,3} ... or d{1,4} if you think we'll get to 1000-row consoles someday :D
Locking rows at the top is a way to have scrollback be destroyed/confidental. It is by design
Locking rows at the bottom is a way to have status bars while preserving scrollback.
Both are good things. I like status bars that tell me what a BAT file is doing, because sometimes i'm doing so many things I"m not going to know, and osmetimes the tab title isn't visible enough (not as many characters!)
Code:
ANSI_UNLOCK_LOCKED_ROWS=7[s[0;%[_rows]r8[u
ANSI_UNLOCK_ROW=7[s[0;%[_rows]r8[u
2) The wonderfully strange and exciting wide lines:
Code:
ANSI_WIDE_LINE_ON=#6
ANSI_WIDE_LINE_OFF=#5
3) The one-off "move up one row" which totally works and is handy because prior to your plugin, the fewer characters one could achieve something, the closes %@LEN[] was to the printable length. I'm glad those days are over!!!! Thanks to you i might add. Not important, but it's maybe the most simple ansi code in existence that renders in windows terminal. Only 2 chars!
4) Cursor color change codes
maybe you have these, but i think it's super useful to set cursor color based on error state, to know a red cursor means something bad happened, green something good, etc.. I also cycle it in tandem with my character-color-cycler (#1 thing for me to relieve hang anxiety, or hangxiety as i call it)
Code:
cursor_change_by_word=[ q]12;bright yellow%@CHAR[7]`
cursor_change_by_word=[ q]12;red%@CHAR[7]`
: (etc)
cursor_change_by_hex is the same as change_by_word, except that instead of values like "red", "Green", "Blue", the values are hexes like "#FF0000", "#00FF00", "#0000FF". So it's a #?[a-z\s0-9]+%@CHAR[7] regex situation for that part
5) You probably have these already, but possibly not. Changing cursor shape has been handy at times. Sometimes i'm doing visuals and want a less prominent cursor but don't want to make it completely invisible.
The CURSOR_COLOR_CHANGE ansi codes tend to not follow a lot of peoples' ansi regexes, because they use the \007 (yes, the beep) character
Code:
ANSI_CURSOR_CHANGE_TO_DEFAULT=[0 q
ANSI_CURSOR_CHANGE_TO_BLOCK_BLINKING=[1 q
ANSI_CURSOR_CHANGE_TO_BLOCK_STEADY=[2 q
ANSI_CURSOR_CHANGE_TO_UNDERLINE_BLINKING=[3 q
ANSI_CURSOR_CHANGE_TO_UNDERLINE_STEADY=[4 q
ANSI_CURSOR_CHANGE_TO_VERTICAL_BAR_BLINKING=[5 q
ANSI_CURSOR_CHANGE_TO_VERTICAL_BAR_STEADY=[6 q
6) You probably have these too
Code:
ALTERNATE_SCREEN_BUFFER_ON=[?1049h
ALTERNATE_SCREEN_BUFFER_OFF=[?1049h
Get this! When grep outputs these codes, they still render even with //option ansi=no !!!!!!! It's what thwarted me grepping my ansi environment variables out and made this post 10X harder! lol It destroys scrollback.
99) I don't personally care about this one, but you CAN set tab stops in custom in windows terminal. I did it to fix the output of a tool that relied on tab stops and ended up with mismatched columns. I've never done it with THIS one before, though:
99999999) here's the leftover stuff i case you're curious: These are the only remaining ANSI (vVT10+220 codes, i read both manuals front to back) codes that anyone could possibly miss, but these last ones are esoteric voodoo that may not be currently implemented
Code:
ANSI_APP_PROGRAM_COMMAND=_
ANSI_DEVICE_ATTRIBUTES_QUERY=Z
ANSI_DEVICE_CONTROL_STRING=P
ANSI_HARD_TERMINAL_RESET=c
ANSI_IDENTIFY_HOST_TO_TERMINAL=Z
ANSI_SOS=X
ANSI_START_OF_STRING=X
ANSI_STRING_TERMINATOR=\