Trivial.Console 6.0.0

Install-Package Trivial.Console -Version 6.0.0
dotnet add package Trivial.Console --version 6.0.0
<PackageReference Include="Trivial.Console" Version="6.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Trivial.Console --version 6.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Trivial.Console, 6.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Trivial.Console as a Cake Addin
#addin nuget:?package=Trivial.Console&version=6.0.0

// Install Trivial.Console as a Cake Tool
#tool nuget:?package=Trivial.Console&version=6.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Trivial.Console

This library includes a lot of useful rich command line controls.

Import

Add following namespace to your code file to use.

using Trivial.CommandLine;

Select

A beautiful list or table with customized style to the standard output stream so that user just need press the arrow buttons and ENTER in keyboard to select.

// Create an instance for adding items and setting options.
var col = new Trivial.Collection.SelectionData<string>();

// Add some items. For each item, you can set a hotkey, a display name and the data.
col.Add('a', "char a", "a");
col.Add('b', "char b", "b");
for (var i = 0; i < 120; i++)
{
    col.Add("num " + i, i.ToString());
}

// Create an options for display.
var options = new SelectionOptions
{
    // You can define a question string after the list.
    Question = "Please select one: ",

    // We can define the colors of the item selected.
    SelectedForegroundConsoleColor = ConsoleColor.White,
    SelectedBackgroundConsoleColor = ConsoleColor.Blue,

    // The selected item will also be displayed after the question string.
    // So you can define its color.
    ItemForegroundConsoleColor = ConsoleColor.Cyan,

    // At the end of the list, the tips will be displayed before user press any key.
    // There is a default value and you can customize it.
    // And you can disable it by set it as null.
    Tips = "Tips: You can use arrow key to select and press ENTER key to continue.",

    // Then you can define its color.
    TipsForegroundConsoleColor = ConsoleColor.Yellow,

    // You can define the prefix for the item and the one selected.
    SelectedPrefix = "> ",
    Prefix = " ",

    // You can define the column count for the list.
    Column = 5,

    // You can define the maximum rows to displayed.
    // A paging will be displayed if the count of the list is greater than it.
    MaxRow = 10,

    // Press ESC can cancel this selection.
    // But you can enable the manual way by set a manual question
    // so that user can type the words directly.
    ManualQuestion = "Type: "
};

// Write it to the standard output stream and wait for user selection.
var result = DefaultConsole.Select(col, options);

// You can get the result.
DefaultConsole.WriteLine("The result is {0}.", result.Value);

Progress

A progress bar in terminal that can present the latest state during the specific task running.

// Define an options that you can custom the style.
var progressStyle = new ConsoleProgressStyle
{
    ValueConsoleColor = ConsoleColor.White
};

// Ouput the component in console and get the progress instance to update.
var progress = DefaultConsole.WriteLine(progressStyle, "Processing");

// A time-consuming work here.
for (var i = 0; i <= 50; i++)
{
    await Task.Delay(10);

    // And report the progress updated.
    progress.Report(0.02 * i);
}

JSON

Following is a sample to format JSON into terminal.

var json = new Trivial.Text.JsonObjectNode();
// and then add some properties to json.
DefaultConsole.WriteLine(json);

Linear gradient

Output a string with linear gradient.

DefaultConsole.WriteLine(new LinearGradientConsoleStyle(
    ConsoleColor.Gray,  // Fallback color.
    Color.FromArgb(15, 250, 250),   // From color.
    Color.FromArgb(85, 168, 255))   // To color
    {
        Bold = true     // Additional font style
    },"Trivial Sample");

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
6.0.0 41 1/1/2022
5.2.0 55 12/15/2021
5.1.0 67 12/2/2021
5.0.0 65 11/27/2021
4.0.0 93 11/9/2021
3.9.0 54 12/15/2021
3.8.0 96 11/9/2021
3.7.2 252 4/22/2021
3.7.1 136 4/20/2021
3.7.0 211 3/17/2021
3.6.0 395 11/12/2020
3.5.2 450 4/14/2020
3.5.1 499 4/12/2020
3.5.0 515 4/1/2020
3.4.0 605 2/20/2020
3.3.0 690 2/14/2020
3.2.0 1,010 1/22/2020
3.1.0 1,040 12/30/2019
3.0.1 949 12/26/2019
2.2.0 740 2/19/2020
2.1.0 1,051 12/24/2019
2.0.0 981 8/31/2019
1.2.0 1,029 5/20/2019
1.1.0 970 5/8/2019
1.0.0 991 5/1/2019