Dedupe completion options for commands #3601
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.
Changes
This PR improves the command completion functionality by filtering out options that have already been mentioned in the current command.
For example, when using the
/add
command with multiple files, once a file has been typed, it won't be suggested again in the same command. This makes the completion suggestions more relevant and reduces clutter.Another example might be when you're adding a module and its test module. After you've added the first file, you then have to figure out which is the module/test file again to prevent adding the same file twice. If the file name is quite large, it can be quite difficult to distinguish between the module and the test file.
It's not a large thing but happens often enough for it to be inconvenient.
Testing
Added a test case that verifies this behavior works correctly when completing file names in commands like
/add file1.txt f
wherefile2.txt
should be suggested but notfile1.txt
again.