Skip to content

Clarify uses for results of Get-PSReadLineOptions #3601

Open
@StevenBucher98

Description

@StevenBucher98

Prerequisites

  • 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 "Color" but in order for them to work you just need "". 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions