fix(complete): Trailing space after zsh directory completions#6203
Merged
epage merged 1 commit intoclap-rs:masterfrom Dec 30, 2025
Merged
Conversation
2edf627 to
77be839
Compare
zsh dynamic completions would add a trailing space after all completions, including directories. This prevented natural path completion. Users had to delete the trailing space before continuing to type or tab-complete within the directory. The fix is for the dynamic completion script to separate completions into directories and non-directories, and providing the directory completions to zsh with a different _describe invocation. For directories: 1. Strip the trailing slash from the completion value 2. Let zsh add it back as a suffix using `_describe -S '/'` 3. Also provide `-r '/'` to make the slash auto-removable when typing '/' This makes dynamic path completions reasonably emulate zsh-native file completions. This matches the behavior already implemented for bash completions which uses 'compopt -o nospace' to achieve the same result. Fixes: clap-rs#6178 Ref: jj-vcs/jj#5582
77be839 to
5571b83
Compare
Member
|
Thanks! Really look forward to someone diving into #5587 so we can remove all of these hacks and have better control over this. |
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.
zsh dynamic completions would add a trailing space after all completions, including directories. This prevented natural path completion. Users had to delete the trailing space before continuing to type or tab-complete within the directory.
The fix is for the dynamic completion script to separate completions into directories and non-directories, and providing the directory completions to zsh with a different _describe invocation.
For directories:
_describe -S '/'-r '/'to make the slash auto-removable when typing '/'This makes dynamic path completions reasonably emulate zsh-native file completions.
This matches the behavior already implemented for bash completions which uses 'compopt -o nospace' to achieve the same result.
Fixes: #6178
Ref: jj-vcs/jj#5582