-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Closed
Labels
Issue-Discussionthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifIssue-Enhancementthe issue is more of a feature request than a bugthe issue is more of a feature request than a bugResolution-FixedThe issue is fixed.The issue is fixed.WG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility modulecmdlets in the Microsoft.PowerShell.Utility module
Milestone
Description
Summary of the new feature/enhancement
The current rendering of progress has a few issues:
- there is a difference in behavior between Windows and Linux/macOS
- there is quite a bit of empty space that is re-rendered each time and takes up space and affects perf
- the current progress is rendered using buffercells which is more complex than strings and require more computation and also doesn't support ANSI escape sequences
Proposed technical implementation details
Borrow ideas from popular Linux native commands to have a single line progress bar (although multiple bars are supported at once as well as nested bars) by using ANSI escape inverse sequence to render a progressive bar showing progress over the status description text.
Some discussion topics:
- do we want to have a consistent experience across all platforms or keep Windows distinct where the progress renders at the top rather than the bottom
- current proposal allows for existing rendering for those who prefer it and adds a new minimal renderer across all platforms
- do we want to retain existing behavior to clear the progress bar once it's complete or keep the last update (which many Linux commands do)
- based on discussion and also due to how progress rendering works currently, we'll need to clear it to avoid strange artifacts being on the screen particularly when scrolling occurs
- do we want to limit the width of the progress bar or let it render the full width of the terminal? (will spend more time rendering on wide terminals as well as making it more effort to look across the full width for progress information, in my opinion)
- made this a configurable setting that defaults to 120 chars (this value is used as default in many formatting situations already)
peppekerstens
Metadata
Metadata
Assignees
Labels
Issue-Discussionthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifthe issue may not have a clear classification yet. The issue may generate an RFC or may be reclassifIssue-Enhancementthe issue is more of a feature request than a bugthe issue is more of a feature request than a bugResolution-FixedThe issue is fixed.The issue is fixed.WG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility modulecmdlets in the Microsoft.PowerShell.Utility module