-
Notifications
You must be signed in to change notification settings - Fork 8k
Description
Summary of the new feature / enhancement
Today, we wait for all feedback provider to finish or time out before rendering the results. The worst-case scenario would be a feedback provider always times out and then the user won't see feedback displayed until the timeout happens. Therefore, we currently set the timeout to a small number (300ms initially) to avoid having a user wondering "where is my prompt? is PowerShell freezing?".
This short timeout is not flexible and not enough for many interesting feedback scenarios. For example, the WinGet feedback provider simply cannot guarantee to return results within 300ms.
In the long-term, we need to improve the UI for feedback provider to make the results from providers stream-able and cancellable:
- stream-able: whenever a feedback provider returns results, they will be displayed to the user without wait for other providers. If any provider is still running, we display a spinner to indicate the on-going processing.
- cancellable: user can press
ctrl+cto cancel the on-going feedback provider and get their prompt back.
In this way, we will be able to afford a much larger timeout to allow various feedback provider to work with PowerShell.
Proposed technical implementation details (optional)
No response