summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2015-05-12 10:33:48 +0200
committerJiří Klimeš <jklimes@redhat.com>2015-05-12 16:14:10 +0200
commit9fc1afd413d6c23af73e4a9e78ed0d2bec92bbf7 (patch)
treee981c6b4a9454670de3435a4f7d5ead3d988ba83
parent8b4ea89bf74329525055a74f52d5263d5218dada (diff)
downloadNetworkManager-jk/cli-tab-completion.tar.gz
cli: TAB-complete yes/no for boolean properties in the editorjk/cli-tab-completion
-rw-r--r--clients/cli/connections.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 1c3d43eaa2..f535f1e36e 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -6451,6 +6451,24 @@ should_complete_property_values (const char *prompt, const char *line,
}
+static gboolean
+should_complete_boolean (const char *prompt, const char *line)
+{
+ NMSetting *setting;
+ char *property;
+ gboolean is_boolean = FALSE;
+
+ get_setting_and_property (prompt, line, &setting, &property);
+ if (setting && property)
+ is_boolean = nm_setting_property_is_boolean (setting, property);
+
+ if (setting)
+ g_object_unref (setting);
+ g_free (property);
+
+ return is_boolean;
+}
+
static char *
gen_property_values (const char *text, int state)
{
@@ -6549,7 +6567,8 @@ nmcli_editor_tab_completion (const char *text, int start, int end)
rl_completion_append_character = '=';
rl_completer_word_break_characters = ", ";
}
- }
+ } else if (should_complete_boolean (NULL, line) && num == 3)
+ generator_func = gen_func_bool_values;
}
} else if ( ( should_complete_cmd (line, end, "remove", &num, NULL)
|| should_complete_cmd (line, end, "describe", &num, NULL))
@@ -6599,7 +6618,8 @@ nmcli_editor_tab_completion (const char *text, int start, int end)
rl_completion_append_character = '=';
rl_completer_word_break_characters = ", ";
}
- }
+ } else if (should_complete_boolean (prompt_tmp, NULL) && num <= 2)
+ generator_func = gen_func_bool_values;
}
if (should_complete_cmd (line, end, "print", &num, NULL) && num <= 2)
generator_func = gen_cmd_print2;