A shortcode parser to make complex ANSI a little bit easier #14
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.
Shortcode parser
Just a simple QOL update that allows you to put small shortcodes in a string and parse it into ANSI. It turns something like this:
into:
Works with both StreamWriter and BufferWriter. If using Proxy or Buffer you need to flush/echo manually as per usual.
Supported shortcodes
%b%
bold()
%n%
normal()
%f%
faint()
%i%
italic()
%u%
underline()
%bl%
blink()
%n%
negative()
%s%
strikethrough()
%r%
nostyle()
%f<num>%
color(SGR::COLOR_FG_*)
%b<num>%
color(SGR::COLOR_BG_*)
%c%
eraseDisplay()
%eu%
eraseDisplayUp()
%ed%
eraseDisplayDown()
%el%
eraseLine()
%ee%
eraseLineToEOL()
%es%
eraseLineToSOL()
%cb<num>%
cursorBack(<num>)
%cf<num>%
cursorForward(<num>)
%cu<num>%
cursorUp(<num>)
%cd<num>%
cursorDown(<num>)
%xy<x>,<y>%
cursorPosition(<x>, <y>)
%lf%
lf()
Note that colors are represented by their MS-DOS equivalents (ie 0 is black, 15 is bright white etc), and they are mapped to their SGR consts in two arrays in the parser.