Console Writers
We need to write to the console
Terminaux provides a vast amount of console writers for different purposes, like the progress bar writer, writing console output in color, etc. Also, you can use their Render() functions found in basically every static writer (not those that are dynamic, such as wrapped writers).
Standard console writers
The standard console writers provide you with non-moving parts of the text. They have their own writers and renderers to allow you to use them in two ways. The writer writes directly to the console, while the renderers are more suitable for the screen feature that you can check out at:
Console ScreenNormal console writers
Starting from ConsoleWriters, this namespace provides the following classes:
ListWriterColorProvides you with the necessary functions to let you write the list entries to the console easily. It supports both non-generic and generic enumerables and dictionaries.
TextWriterRawProvides you with the necessary functions to allow you to write the raw text to the console either to the standard output or the standard error.
TextWriterColorProvides you with the necessary functions to allow you to write the text to the console with and without color.
TextWriterHighlightedColorProvides you with the necessary functions to allow you to write the highlighted text to the console with and without color.
By default, the modern way of highlighting specific text is enabled by using a VT sequence intended to reverse the colors. If you still want to use the legacy way, you'll have to set the
legacyargument totruebefore passing in all the usual parameters.
TextWriterWhereColorProvides you with the necessary functions to write the text in a specific position to the console with and without color.
RainbowTextWriterColorProvides you with the necessary functions to write the text with a rainbow colors spread around the text as foreground color.
RainbowBackTextWriterColorProvides you with the necessary functions to write the text with a rainbow colors spread around the text as background color.
Consult the below page to find out how to use these functions.
Wrapped pager controls
The below wrapped pager controls are available when wrapping is enabled:
ESC: Exits the pagerPage Up: Moves the output by one page backward, but stops at the beginning of the output.Page Down: Moves the output by one page forward, but stops at the end of the output.Up Arrow: Moves up by one lineDown Arrow: Moves down by one lineHome: Goes to the first pageEnd: Goes to the last pageAny key: Moves the output by one page forward and exits if it reaches end of line
Fancy writers
Alongside these writers, there are also writers that are categorized as "fancy" because they either print so awesome or they print graphics. Some of these writers allow you to supply text and/or a title. They can be found in the FancyWriters namespace that provides the below classes:
BorderColorProvides you with the necessary functions to allow you to draw a border somewhere in the console and with colors (border, background, and text).
BorderTextColorProvides you with the necessary functions to allow you to draw a border somewhere in the console with text inside the box and with colors (border, background, and text).
BoxColorProvides you with the necessary functions to allow you to draw a box somewhere in the console.
BoxFrameColorProvides you with the necessary functions to allow you to draw a box frame somewhere in the console and with colors (border, background, and text).
CenteredFigletTextColorProvides you with the necessary functions to allow you to render a string using the provided Figlet font in the middle of the console.
CenteredTextColorProvides you with the necessary functions to allow you to render a string in the middle of the console.
FigletColorProvides you with the necessary functions to allow you to render a string using the provided Figlet font to the console.
FigletWhereColorProvides you with the necessary functions to allow you to render a string using the provided Figlet font to the console at any position you want.
InfoBoxColorProvides you with the necessary functions to allow you to render an information box containing text inside it in the middle of the console. You can make it either modal (having a user press any key to exit) or informational (not waiting for any user input).
PowerLineColorProvides you with the necessary functions to allow you to build PowerLine segments and display them to the console.
ProgressBarColorProvides you with the necessary functions to allow you to render a horizontal progress bar to the console.
ProgressBarVerticalColorProvides you with the necessary functions to allow you to render a vertical progress bar to the console.
SeparatorWriterColorProvides you with the necessary functions to allow you to render a separator including text to the console.
TableColorProvides you with the necessary functions to allow you to render a table to the console.
SliderVerticalColorProvides you with the necessary functions to allow you to render a vertical slider to the console. The
Absoluteversions of the functions are generally easier to use than the normal ones, because they describe ranges as actual numbers rather than the slider console cells.
SliderColorProvides you with the necessary functions to allow you to render a horizontal slider to the console. The
Absoluteversions of the functions are generally easier to use than the normal ones, because they describe ranges as actual numbers rather than the slider console cells.
Consult the below page to find out how to use these functions.
The tools for fancy writers can also be found here:
Miscellaneous writers
Finally, the miscellaneous writers are the writers that don't have any meaningful category. That's when MiscWriters comes in. This namespace contains these classes:
LineHandleWriterProvides you with the necessary functions to allow you to render a line of a text file with the compiler-like line handle using the specified line and column to the console.
LineHandleRangedWriterProvides you with the necessary functions to allow you to render a line of a text file with the compiler-like line handle using the specified line and column range to the console. This is used to highlight relevant parts of the entire line
KeybindingsWriterProvides you with the necessary functions that allow you to write the horizontal list of keybindings according to the list specified. Some of these functions also allow you to write a modal informational box that shows a list of keybindings. For more information, see this page.
Consult the below page to find out how to use these functions:
Dynamic writers
In addition to the standard writers, there exists dynamic writers that allow you to render moving parts of text to the console. This type of writers are usable only when writing to the console directly.
This namespace contains these classes:
TextWriterSlowColorProvides you with the necessary functions to simulate a typewriter writing a requested string to the console with and without color.
TextWriterWhereSlowColorProvides you with the necessary functions to simulate a typewriter that writes a text in a specific position to the console with and without color.
TextWriterWrappedColorProvides you with the necessary functions to allow you to wrap long outputs to pages, also called a pager.
Consult the below page to find out how to use these functions:
Miscellaneous
Some of the console writers allow customization, such as the bordered boxes or progress bars.
Borders
You can customize the borders for some of the console writers that support borders by editing properties found in the global settings of the borders, which can be found in the BorderSettings.GlobalSettings property. You can pass your own instance of BorderSettings with your own customizations to the border and its properties to the supported writers and all the informational boxes. The following writers support editing the border settings:
BorderColorBorderTextColorBoxFrameColorProgressBarColorProgressBarVerticalColorSliderColorSliderVerticalColor
Last updated