Tab completions shouldn't move the cursor when there are no completions #4128
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.
Description
This fixes #4124
This fixes the first example,
mpv --|'https://...very-very-long-url...'
. I'm not quite sure how to test it, however, because it changes thereader.cpp
loop, which doesn't seem to have any tests infish_tests.cpp
.The second example,
foo /path-typo|:/usr/lib
, is much more complicated and seems to be because the functioncompleter_t::complete_param_expand()
incomplete.cpp
doesn't know the cursor's position, and all surrounding code, including the maincomplete()
function, assumes completions are done at the end of a token.I looked into this a little bit and made a WIP branch
complete_param_expand_enhancement_wip
and it's possible to have the cursor not move when there are no completions and even expand paths before the:
too. But with my current implementation I don't think it's possible to do this and move the cursor to the end when there is a completion e.g.fish --ver|si
->fish --version|
, which is probably a big breaking change.