Clarify uses for results of `Get-PSReadLineOptions`

Open
#3,601 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp, powershell
Domain
cli

Research direction

Start by locating the implementation and output formatting for Get-PSReadLineOption, then compare it with the formatting used by Get-PSReadLineKeyHandlers. Determine how color-specific keys should be distinguished from other options and confirm whether the proposed presentation preserves existing behavior; done means the output clearly explains which keys Set-PSReadLineOption -Colors accepts.

Written by the indexing model from the issue text.

Description

Issue-Enhancement
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.

Dominant language
C#
Stars
4.4k
Forks
341
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PowerShell/PSReadLine

All issues in PowerShell/PSReadLine

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.