PowerShell / PSReadLine

A bash inspired readline implementation for PowerShell
BSD 2-Clause "Simplified" License
3.75k stars 296 forks source link

Allow a prediction result to label tokens in it specially to indicate additional information for attention #3690

Open StevenBucher98 opened 1 year ago

StevenBucher98 commented 1 year ago

Prerequisites

Description of the new feature/enhancement

Currently there is no way to render different colors for predictions results. Predictors may want to be able to highlight particular parts of their prediction in order to bring the users attention to it for them to change or check before execution. One example scenario may be for Az Predictor when they give a parameter result that may be important for the user to review before execution like size of a VM. This is a simple mock up of the scenario.

image

Proposed technical implementation details (optional)

There are 2 options from the implementation perspective:

  1. Allow a prediction result to have a new field to store substring spans for labeling substrings, which then will be rendered differently by PSReadLine to indicate "attention needed".

  2. Allow a prediction result to provide "presentation text" along with the plain "suggestion text". The "presentation text" is VT decorated suggestion text, and when it's provided, PSReadLine simply using it for rendering. When it's not provided, PSReadLine do the same rendering as of today based on the "suggestion text".

daxian-dbw commented 1 year ago

I prefer to the option (1) for 2 reasons:

  1. In the long term, it may be good for PSReadLine to be aware of the additional metadata about the prediction result to be rendered, which may light up new scenarios.

  2. Letting PSReadLine own the rendering is better as it will provide a unified user experience -- e.g. the same color will be used indicating "attention needed", instead of letting individual predictor to define their own color that indicates "attention needed".