TODO:

examples:
--------------------------------------
create t lib r net5 n hello
--------------------------------------

--------------------------------------
# create solution command
--------------------------------------

* command that allows creating an empty solution
  - create sln
  - create proj

- see the dotnet cli
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-sln
"dotnet cli list"
"dotnet new cli"
"dotnet cln add xyzproject"

--------------------------------------
# install command
--------------------------------------

* add option to install required components
  - .net core / .net 5
  - rapid compiler

--------------------------------------
# configure command
--------------------------------------

* configures different options for the cli
  - runtime - the .net runtime that is used to create projects but also to compile projects with
  - compiler - the compiler version to use (depending on nuget packages)

* add option to delete the roslyn compiler files
  // deletes the "nuget package folder" for the "dev-3.8.0" roslyn compiler
  rapid compiler delete-cache

--------------------------------------
# create command
--------------------------------------

* add option to automatically add to the "active solution" (-s)
  create t lib r net5 n hello -s
  // only if there is a .sln file in the directory where started

* add logging to create command
  - add a summary on the 'parameters' that will be used for the command ...

    project name: hello
    framework: net5-windows
    type: console

    building template...

* make each log row to at least take 200 ms, so that it "appears" like some work is being done...

--------------------------------------
# cli
--------------------------------------

* add "tab" completion to "command" and "option" level

* implement select logic
  - delete selected on backspace
  - replace selecte on insert
  - ctrl select etc...

* implement copy & paste logic

* implement undo / redo logic

# keyboard logic

* custom event emitter for keys? so that a single input is valid at a time?

--------------------------------------
# colorization
--------------------------------------

* colorize the terminal "command input" with colors:
  command = green
  option = blue
  value = standard gray

* colorize the "completion list" similarily with colors
  description = dark green color = "comment color"
  name / short name = green for command / blue for option
  value pattern = dimmed gray

* make selected option in list "italic"