forked from OSchip/llvm-project
[bash-autocompletion] Fix bug when a flag ends with '='
There was a bug that when a flag ends with '=' and no value was suggested, clang autocompletes the flag itself. For example, in bash, it looked like this: ``` $ clang -fmodule-file=[tab] -> $clang -fmodule-file=-fmodule-file ``` This is not what we expect. We expect a file autocompletion when no value was found. With this patch, pressing tab suggests files in the current directory. Reviewers: teemperor, ruiu Subscribers: cfe-commits llvm-svn: 345121
This commit is contained in:
parent
2a1b1d94b6
commit
df9c7e3001
|
@ -1534,7 +1534,9 @@ void Driver::HandleAutocompletions(StringRef PassedFlags) const {
|
|||
if (SuggestedCompletions.empty())
|
||||
SuggestedCompletions = Opts->suggestValueCompletions(Cur, "");
|
||||
|
||||
if (SuggestedCompletions.empty()) {
|
||||
// When flag ends with '=' and there was no value completion, return empty
|
||||
// string and fall back to the file autocompletion.
|
||||
if (SuggestedCompletions.empty() && !Cur.endswith("=")) {
|
||||
// If the flag is in the form of "--autocomplete=-foo",
|
||||
// we were requested to print out all option names that start with "-foo".
|
||||
// For example, "--autocomplete=-fsyn" is expanded to "-fsyntax-only".
|
||||
|
|
|
@ -115,3 +115,9 @@
|
|||
// Check if they can autocomplete values with coron
|
||||
// RUN: %clang --autocomplete=foo,bar,,,-fno-sanitize-coverage=,f | FileCheck %s -check-prefix=FNOSANICOVER-CORON
|
||||
// FNOSANICOVER-CORON: func
|
||||
|
||||
// Clang should return empty string when no value completion was found, which will fall back to file autocompletion
|
||||
// RUN: %clang --autocomplete=-fmodule-file= | FileCheck %s -check-prefix=MODULE_FILE_EQUAL
|
||||
// MODULE_FILE_EQUAL-NOT: -fmodule-file=
|
||||
// RUN: %clang --autocomplete=-fmodule-file | FileCheck %s -check-prefix=MODULE_FILE
|
||||
// MODULE_FILE: -fmodule-file=
|
||||
|
|
Loading…
Reference in New Issue