PromptPlus 4.2.0

dotnet add package PromptPlus --version 4.2.0
NuGet\Install-Package PromptPlus -Version 4.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PromptPlus" Version="4.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PromptPlus --version 4.2.0
#r "nuget: PromptPlus, 4.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PromptPlus as a Cake Addin
#addin nuget:?package=PromptPlus&version=4.2.0

// Install PromptPlus as a Cake Tool
#tool nuget:?package=PromptPlus&version=4.2.0

Welcome to PromptPlus

Interactive command-line toolkit for .NET Core with powerful controls and commands to create professional console applications.

All controls input/filter (except Masked input) using GNU Readline Emacs keyboard shortcuts.

PromptPlus Supports 4/8/24-bit colors in the terminal with auto-detection of the current terminal's capabilities and automatic color conversion.

Visit the official page for complete documentation of PromptPlus

PromptPlus was developed in C# with the netstandard2.1, .NET 6 , .NET 7 and .NET 8 target frameworks.

What's new in V4.2.0

  • Added .NET8 target frameworks.
  • Split of feature:
    • PromptPlus.TableSelect<T> to Select item in table : Select row, column and data in a grid/table
    • PromptPlus.Table<T> to write table in console : Show data in a grid/table
  • New Control : TableMultSelect<T> : Select multi-data in a grid/table
    • Samples in project Table MultiSelect Samples
    • Main features :
      • More than 80 layout combinations
      • Navigation by row and columns
      • Scroll the table when it is larger than the screen
      • Split text when it is larger than the column size
      • Automatic header and column completion
      • Color customization of each element
      • Search for data filtered by columns
      • Formatting by column or by data type definition
  • New feature:
    • MinimalRender the prompt and control description are not rendered, showing only the minimum necessary without using resources.
      • Global property : MinimalRender
      • Instance control(By config command): MinimalRender(bool value = true)
  • New feature:
    • Pagination Template to customize pagination information
      • Global property : PaginationTemplate
      • Instance control(By config command) : PaginationTemplate(Func<int, int, int, string>? value)
  • New feature:
    • PromptPlus.Join()
    • Fluent-Interface to write text (less code typed)
  • Changed feature:
    • Moved tooltips and validation message to the end of render to all control
  • Improvement :
    • Color Token now accepts ':' to separate foreground color from background color
    • eg: [RED:BLUE] = [RED ON BLUE]
  • Improvement :
    • Optimized the Calendar control to have symbols when selecting elements
  • Improvement :
    • Optimize Render of ProgressBar (less lines)
  • Improvement :
    • Optimize Render of SliderNumber (less lines)
  • Improvement :
    • Added Styles command for custom colors on all controls
      • Removed the ApplyStyle command from the Config interface (now use the Styles command)
      • Added ToStyle() extension for Color Class (less code typed)
  • Improvement :
    • Added command HideRange to not show range (Min/Max values) in the SliderNumber control
  • Improvement :
    • Optimize resource usage in rendering (less cultural dependency)
  • Improvement :
    • Reinforce the validation of invalid or optional parameters in all controls
  • Improvement :
    • Remove code copy (MIT license) from other project and applied package (for lower maintenance)
  • Improvement :
    • Optimized the WaitControl control (for cancel correctly tasks)
    • Removed property Context (EventWaitProcess)
    • Added Method ChangeContext(Action<T> action) in EventWaitProcess (for change context over thread safe)
    • Renamed command 'CancelAllNextTasks' to 'CancelAllTasks' (WaitControl)
  • Documentation:
    • Examples of snapshot controls updated to reflect layout changes and reduced image size (faster page loading)
    • Reviewed credit references and licenses
  • Renamed command:
    • 'DescriptionWithInputType' to 'ShowTipInputType'.
    • Now extra-line to tip InputType
  • Renamed command:
    • 'AppendGroupOnDescription' to 'ShowTipGroup'.
    • Now extra-line to tip group
  • Fixed bug :
    • Table control does not render correctly when it does not support Unicode
  • Fixed bug :
    • The Slide Switch Control does not show on/off values ​​when they are not customized
  • Fixed bug :
    • Alternate screen doesn't update background style when changing color
  • Fixed bug :
    • Exception when try delete[F3] in empty colletion in AddTolist/AddtoMaskEditList control
  • Fixed bug :
    • Edit[F2] Immutable item in AddTolist/AddtoMaskEditList control
  • Fixed bug :
    • CTRL-V (paste data) does not show input in some controls
  • Fixed bug :
    • Refinement of Unicode symbol rendering in all controls (Corret render)
  • Removed Control Pipeline :

PromptPlus Controls - Sample Usage

//ASCII text banners
PromptPlus
    .Banner("PromptPlus v4.0")
    .Run(Color.Yellow,BannerDashOptions.DoubleBorderUpDown);

//MaskEdit DateTime
var mask = PromptPlus.MaskEdit("input", "MaskEdit DateTime input")
    .Mask(MaskedType.DateTime)
    .DescriptionWithInputType(FormatWeek.Short)
    .Culture("en-us")
    .AcceptEmptyValue()
    .Run();

if (!mask.IsAborted)
{
    PromptPlus.WriteLine($"You input with mask is {mask.Value.Masked}");
    PromptPlus.WriteLine($"You input without mask is {mask.Value.Input}");
}    

//INPUT
var input = PromptPlus
    .Input("Input sample")
    .Default("foo")
    .Run();

if (!input.IsAborted)
{
    PromptPlus.WriteLine($"You input is {input.Value}");
}

//AnyKey
var kp = PromptPlus
    .KeyPress()
    .Config(cfg => cfg.HideAfterFinish(true))
    .Spinner(SpinnersType.DotsScrolling)
    .Run();

Supported platforms

  • Windows
    • Command Prompt, PowerShell, Windows Terminal
  • Linux (Ubuntu, etc)
    • Windows Terminal (WSL 2)
  • macOS
    • Terminal.app

Credits

PromptPlus <u>includes code(Copy)</u> from other software released under the MIT license:

EastAsian width generated by package

API documentation generated by

License

Copyright 2021 @ Fernando Cerqueira

PromptPlus is licensed under the MIT license. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PromptPlus:

Package Downloads
PromptPlusCommandDotNet

Integration with the Command DotNet package with interactive command-line for toolkit for C# with powerful controls and commands.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.2.0 276 11/14/2023
4.1.0 247 10/4/2023
4.0.5 264 9/15/2023
4.0.4 224 8/7/2023
4.0.3 128 7/31/2023
4.0.2 146 7/25/2023
4.0.1 134 7/21/2023
4.0.0 144 7/20/2023
3.3.3 1,036 2/26/2023
3.3.2 231 2/24/2023
3.3.1 205 2/23/2023
3.3.0 208 2/22/2023
3.2.2 228 2/16/2023
3.2.1 234 2/14/2023
3.2.0 268 1/20/2023
3.1.0 272 1/16/2023
3.0.0 550 1/28/2022
2.1.0 1,406 11/11/2021