Use menu behavior when completing scope arguments

We allow to abbreviate scopes ("set g" means the same thing as "set
global") but that feature is a bit obscure.  Users might figure out the
menu completion behavior faster, so let's maybe use it here as well?
This commit is contained in:
Johannes Altmanninger 2022-07-18 19:11:10 +02:00
parent 5aa0241124
commit a1715a0c41

View File

@ -1094,7 +1094,7 @@ const CommandDesc add_hook_cmd = {
}, },
CommandFlags::None, CommandFlags::None,
CommandHelper{}, CommandHelper{},
make_completer(complete_scope, complete_hooks, complete_nothing, make_completer(menu(complete_scope),complete_hooks, complete_nothing,
[](const Context& context, CompletionFlags flags, [](const Context& context, CompletionFlags flags,
StringView prefix, ByteCount cursor_pos) StringView prefix, ByteCount cursor_pos)
{ return CommandManager::instance().complete( { return CommandManager::instance().complete(
@ -1133,7 +1133,7 @@ const CommandDesc remove_hook_cmd = {
ByteCount pos_in_token) -> Completions ByteCount pos_in_token) -> Completions
{ {
if (token_to_complete == 0) if (token_to_complete == 0)
return complete_scope(context, flags, params[0], pos_in_token); return menu(complete_scope)(context, flags, params[0], pos_in_token);
else if (token_to_complete == 1) else if (token_to_complete == 1)
{ {
if (auto scope = get_scope_ifp(params[0], context)) if (auto scope = get_scope_ifp(params[0], context))
@ -1361,7 +1361,7 @@ const CommandDesc alias_cmd = {
ParameterDesc{{}, ParameterDesc::Flags::None, 3, 3}, ParameterDesc{{}, ParameterDesc::Flags::None, 3, 3},
CommandFlags::None, CommandFlags::None,
CommandHelper{}, CommandHelper{},
make_completer(complete_scope, complete_alias_name, complete_command_name), make_completer(menu(complete_scope), complete_alias_name, complete_command_name),
[](const ParametersParser& parser, Context& context, const ShellContext&) [](const ParametersParser& parser, Context& context, const ShellContext&)
{ {
if (not CommandManager::instance().command_defined(parser[2])) if (not CommandManager::instance().command_defined(parser[2]))
@ -1380,7 +1380,7 @@ const CommandDesc unalias_cmd = {
ParameterDesc{{}, ParameterDesc::Flags::None, 2, 3}, ParameterDesc{{}, ParameterDesc::Flags::None, 2, 3},
CommandFlags::None, CommandFlags::None,
CommandHelper{}, CommandHelper{},
make_completer(complete_scope, complete_alias_name, complete_command_name), make_completer(menu(complete_scope), complete_alias_name, complete_command_name),
[](const ParametersParser& parser, Context& context, const ShellContext&) [](const ParametersParser& parser, Context& context, const ShellContext&)
{ {
AliasRegistry& aliases = get_scope(parser[0], context).aliases(); AliasRegistry& aliases = get_scope(parser[0], context).aliases();
@ -1679,7 +1679,7 @@ const CommandDesc set_option_cmd = {
ByteCount pos_in_token) -> Completions ByteCount pos_in_token) -> Completions
{ {
if (token_to_complete == 0) if (token_to_complete == 0)
return complete_scope_including_current(context, flags, params[0], pos_in_token); return menu(complete_scope_including_current)(context, flags, params[0], pos_in_token);
else if (token_to_complete == 1) else if (token_to_complete == 1)
return { 0_byte, params[1].length(), return { 0_byte, params[1].length(),
GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token) }; GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token) };
@ -1715,7 +1715,7 @@ Completions complete_option(const Context& context, CompletionFlags flags,
ByteCount pos_in_token) ByteCount pos_in_token)
{ {
if (token_to_complete == 0) if (token_to_complete == 0)
return complete_scope_no_global(context, flags, params[0], pos_in_token); return menu(complete_scope_no_global)(context, flags, params[0], pos_in_token);
else if (token_to_complete == 1) else if (token_to_complete == 1)
return { 0_byte, params[1].length(), return { 0_byte, params[1].length(),
GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token) }; GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token) };
@ -1834,7 +1834,7 @@ static Completions map_key_completer(const Context& context, CompletionFlags fla
ByteCount pos_in_token) ByteCount pos_in_token)
{ {
if (token_to_complete == 0) if (token_to_complete == 0)
return complete_scope(context, flags, params[0], pos_in_token); return menu(complete_scope)(context, flags, params[0], pos_in_token);
if (token_to_complete == 1) if (token_to_complete == 1)
{ {
auto& user_modes = get_scope(params[0], context).keymaps().user_modes(); auto& user_modes = get_scope(params[0], context).keymaps().user_modes();
@ -2448,7 +2448,7 @@ const CommandDesc set_face_cmd = {
ParameterDesc{{}, ParameterDesc::Flags::None, 3, 3}, ParameterDesc{{}, ParameterDesc::Flags::None, 3, 3},
CommandFlags::None, CommandFlags::None,
face_doc_helper, face_doc_helper,
make_completer(complete_scope, complete_face, complete_face), make_completer(menu(complete_scope), complete_face, complete_face),
[](const ParametersParser& parser, Context& context, const ShellContext&) [](const ParametersParser& parser, Context& context, const ShellContext&)
{ {
get_scope(parser[0], context).faces().add_face(parser[1], parser[2], true); get_scope(parser[0], context).faces().add_face(parser[1], parser[2], true);
@ -2465,7 +2465,7 @@ const CommandDesc unset_face_cmd = {
double_params, double_params,
CommandFlags::None, CommandFlags::None,
face_doc_helper, face_doc_helper,
make_completer(complete_scope, complete_face), make_completer(menu(complete_scope), complete_face),
[](const ParametersParser& parser, Context& context, const ShellContext&) [](const ParametersParser& parser, Context& context, const ShellContext&)
{ {
get_scope(parser[0], context).faces().remove_face(parser[1]); get_scope(parser[0], context).faces().remove_face(parser[1]);