fix(completions): bash colon completion boundaries - #31
Merged
Merged
Conversation
Backport Usage 6.9.0s Bash completion fix for colon-separated values. Preserve the distinction between breaking colons and colons kept inside quoted or escaped words, pass Bashs current Readline word and COMP_WORDBREAKS through the private completion protocol, and report the prefix Readline will preserve during replacement. Strip that preserved prefix from generated candidates before populating COMPREPLY so colon-separated completions insert only the fragment Bash is actually replacing. Add regression coverage for normal, escaped, quoted, consecutive, and trailing escaped colon cases.
…selemis-com/argx into feat/fix-bash-colon-complete-boundaries
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.
Summary
Backport Usage 6.9.0's Bash completion fix for colon-separated values.
Bash Readline may treat
:as a word boundary throughCOMP_WORDBREAKS, while Argx completes against the full logical argument. This meant Argx could generate the correct full candidate but Bash would replace only the fragment after the final breaking colon, producing incorrect insertion.Changes
COMP_WORDBREAKSthrough the private completion protocolCOMPREPLYThe implementation follows the Usage 6.9.0 fix closely, with only the mechanical changes required for Argx's existing completion protocol and lint configuration.
Parser semantics and completion behavior for other shells are unchanged.