Merge duplicate progress notifications during environment creation #931
+258
−50
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When creating a virtual environment with packages to install, users would see two separate, stacked progress notifications that were confusing and looked odd:
The second progress notification (displayed on top) represents just a different stage in the same creation operation, so displaying two separate notifications was unnecessary.
Solution
This PR merges the two progress notifications into a single, updating progress notification that leverages VS Code's progress API to update its message as the operation progresses through different stages.
Before:
After:
Changes
API Enhancement
suppressProgress?: boolean
option toPackageManagementOptions
typeCore Implementation
createWithProgress()
to use theprogress
parameter to update the message to "Installing packages..." when package installation begins, and passessuppressProgress: true
toapi.managePackages()
manage()
to check thesuppressProgress
flag and conditionally skip wrapping execution withwithProgress()
when the flag is truesuppressProgress
flag with proper handling of CancellationToken requirementsTesting
venvProgressMerge.unit.test.ts
to verify:progress.report()
is called with the "Installing packages..." messagesuppressProgress: true
is passed tomanagePackages()
Impact
false
Fixes #[issue_number]
Original prompt
Fixes #925
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.