Topic/multi pick and memoization #29
Open
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.
Add support for new MultiPick extension command. Add support for memoization of shellCommands so that the computation can be reused (and remain stable) across multiple references within the same command evaluation scope. Internally, I refactored to extract a Resolver class within the UserCommandsController to enable command-scoped caching to avoid cache conflicts between simultaneously running async functions. Additionally, MultiPick selections are persisted across command invocations.
As implied by the documentation changes, the use case here is to support the selection of a subset of PyTest tests invoked via a runnable PyTest target under Bazel. I wanted to be able to invoke a runnable PyTest target in
--collect-onlymode, filter out the list of PyTest cases, present them to the user as a multi-pick selector, then take the selected items and append them to a Bazel PyTest test command to run the selected tests. Options such as--no-covhave to be able to be toggled in order to disable coverage thresholds when running just a few tests.This addresses the feature request I created in #30