aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-10-17 02:30:27 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-10-17 02:30:27 -0700
commit947c6cac332cabb58452178d563a2a0c26def35e (patch)
tree0377b9662a995e19ffb0dfbf0a85f85706878d5f /toolsrc/src
parent7ed8d4f75e903fdad4c02b4e784f2f4bcb30a3b0 (diff)
downloadvcpkg-947c6cac332cabb58452178d563a2a0c26def35e.tar.gz
vcpkg-947c6cac332cabb58452178d563a2a0c26def35e.zip
`autocomplete` Consider private commands if no public commands match
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/commands.autocomplete.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkg/commands.autocomplete.cpp b/toolsrc/src/vcpkg/commands.autocomplete.cpp
index addb9edaf..fcbe73835 100644
--- a/toolsrc/src/vcpkg/commands.autocomplete.cpp
+++ b/toolsrc/src/vcpkg/commands.autocomplete.cpp
@@ -39,7 +39,8 @@ namespace vcpkg::Commands::Autocomplete
{
const std::string requested_command = match[1].str();
- std::vector<std::string> valid_commands = {
+ // First try public commands
+ std::vector<std::string> public_commands = {
"install",
"search",
"remove",
@@ -57,11 +58,31 @@ namespace vcpkg::Commands::Autocomplete
"contact",
};
- Util::unstable_keep_if(valid_commands, [&](const std::string& s) {
+ Util::unstable_keep_if(public_commands, [&](const std::string& s) {
return Strings::case_insensitive_ascii_starts_with(s, requested_command);
});
- output_sorted_results_and_exit(VCPKG_LINE_INFO, std::move(valid_commands));
+ if (!public_commands.empty())
+ {
+ output_sorted_results_and_exit(VCPKG_LINE_INFO, std::move(public_commands));
+ }
+
+ // If no public commands match, try private commands
+ std::vector<std::string> private_commands = {
+ "build",
+ "buildexternal",
+ "ci",
+ "depend-info",
+ "env",
+ "import",
+ "portsdiff",
+ };
+
+ Util::unstable_keep_if(private_commands, [&](const std::string& s) {
+ return Strings::case_insensitive_ascii_starts_with(s, requested_command);
+ });
+
+ output_sorted_results_and_exit(VCPKG_LINE_INFO, std::move(private_commands));
}
// Handles vcpkg install package:<triplet>