feat: add partial context matching to switch command#2
Merged
Conversation
When running `switch <name>`, the tool now supports partial matching: - Exact match: switches immediately (preserves existing behavior) - Partial match: opens fuzzy finder pre-filtered to matching contexts - No match: returns helpful error message Matching is case-insensitive for partial matches and searches both context names and aliases.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Overview
Adds partial context matching to the
switchcommand. When a context argument is provided, it first tries an exact match (switches immediately without the picker). If no exact match, it filters contexts by case-insensitive substring and opens the fuzzy picker with only the matches.Based on the store-env-vars branch (#1), so includes
KUBESWITCH_STOREandKUBESWITCH_PATHsupport.Originally submitted upstream as danielfoehrKn#194, rebased onto the store-env-vars work.
Technical
desiredContextparameter toSwitcher()functionSwitcher()instead ofsetContextCmdfor unified handlingwaitForSearchResults()helper ensures async search has populated before matchingTesting
go build ./...passesgo test ./...passesswitch aws-otk-prod-dx-use1-004switches immediately (exact match)switch prod-dxopens picker filtered to matching contexts (partial match)switch nonexistentreturns error "no contexts matching"switchwith no args opens normal fuzzy picker (unchanged behavior)KUBESWITCH_STOREandKUBESWITCH_PATHset correctly for all paths