PSReadLine icon indicating copy to clipboard operation
PSReadLine copied to clipboard

Clarify uses for results of `Get-PSReadLineOptions`

Open StevenBucher98 opened this issue 2 years ago • 0 comments

Prerequisites

  • [X] Write a descriptive title.

Description of the new feature/enhancement

When I was exploring some of the coloring options available in PSReadLine I was confused when the options I got from Get-PSReadLine were not working when I did Set-PSReadLineOption -Colors @{<KEY>='Green'} . The options were expressed like "<KEY>Color" but in order for them to work you just need "<KEY>". An example of this confusion can be seen in screenshot below:

Screenshot 2023-02-27 at 2 33 06 PM

Proposed technical implementation details (optional)

Have more clear formatting to show the color options verses the other options available in PSReadLine, perhaps a header showing these are color specific keys. Maybe utilize the same formatting that Get-PSReadLineKeyHandlers use.

i.e

PS /Users/stevenbucher> Get-PSReadLineOption

Editmode
=======
Option                                  Value             Description
---                                    --------           -----------

EditMode                               : Emacs.           Some description

History Options
============

AddToHistoryHandler                    : System.Func`2[System.String,System.Object]
HistoryNoDuplicates                    : True
HistorySavePath                        : /Users/stevenbucher/.local/share/powershell/PSReadLine/ConsoleHost_history.txt
HistorySaveStyle                       : SaveIncrementally
HistorySearchCaseSensitive             : False
HistorySearchCursorMovesToEnd          : False
MaximumHistoryCount                    : 4096

....

Color Options
==========

Option                                  Value             Description
---                                    --------           -----------
Command                           : "`e[93m"              PowerShell Cmdlets
Comment                           : "`e[32m"
ContinuationPrompt                : "`e[37m"
DefaultToken                      : "`e[37m"
Emphasis                          : "`e[96m"
Error                             : "`e[91m"
InlinePrediction                  : "`e[38;5;238m"
Keyword                           : "`e[92m"
ListPrediction                    : "`e[92m"
ListPredictionSelected            : "`e[48;5;238m"
Member                            : "`e[97m"
Number                            : "`e[97m"
Operator                          : "`e[90m"
Parameter                         : "`e[90m"
Selection                         : "`e[30;47m"
String                            : "`e[36m"
Type                              : "`e[37m"
Variable                          : "`e[92m"

Very rough design but just a thought for potential way to do this.

NOTE: this would be a breaking change so may not be worth however my personal preference is having more detailed and categorization of these options.

StevenBucher98 avatar Feb 28 '23 01:02 StevenBucher98