diff options
| author | Maxime Coste <mawww@kakoune.org> | 2024-10-22 21:18:23 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2024-10-22 21:18:23 +1100 |
| commit | 50917b39ca410feac0f8dbf37b6db408aeedc2b8 (patch) | |
| tree | 7ec723bf865d5a2ab56cb7a98e64aaa5440d959f /src | |
| parent | ca7bc55cf5134b11451ca6b88d9fa0205bbaac66 (diff) | |
Remove now unused CompletionFlags
Since shell-script-completions now runs the script asynchronously
and unconditionally, there is no use for the CompletionFlags::Fast
anymore which means we can remove that type altogether.
Diffstat (limited to 'src')
| -rw-r--r-- | src/command_manager.cc | 23 | ||||
| -rw-r--r-- | src/command_manager.hh | 7 | ||||
| -rw-r--r-- | src/commands.cc | 112 | ||||
| -rw-r--r-- | src/completion.cc | 3 | ||||
| -rw-r--r-- | src/completion.hh | 14 | ||||
| -rw-r--r-- | src/input_handler.cc | 16 | ||||
| -rw-r--r-- | src/input_handler.hh | 3 | ||||
| -rw-r--r-- | src/normal.cc | 6 | ||||
| -rw-r--r-- | src/parameters_parser.hh | 4 |
9 files changed, 80 insertions, 108 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc index fd32f93c..e30f8a68 100644 --- a/src/command_manager.cc +++ b/src/command_manager.cc @@ -658,7 +658,7 @@ Completions CommandManager::complete_module_name(StringView query) const | transform(&ModuleMap::Item::key))}; } -static Completions complete_expansion(const Context& context, CompletionFlags flags, +static Completions complete_expansion(const Context& context, Token token, ByteCount start, ByteCount cursor_pos, ByteCount pos_in_token) { @@ -674,7 +674,7 @@ static Completions complete_expansion(const Context& context, CompletionFlags fl token.content, pos_in_token) }; case Token::Type::ShellExpand: - return offset_pos(shell_complete(context, flags, token.content, + return offset_pos(shell_complete(context, token.content, pos_in_token), start); case Token::Type::ValExpand: @@ -695,7 +695,7 @@ static Completions complete_expansion(const Context& context, CompletionFlags fl } } -static Completions complete_expand(const Context& context, CompletionFlags flags, +static Completions complete_expand(const Context& context, StringView prefix, ByteCount start, ByteCount cursor_pos, ByteCount pos_in_token) { @@ -713,7 +713,7 @@ static Completions complete_expand(const Context& context, CompletionFlags flags continue; if (token.type == Token::Type::Raw or token.type == Token::Type::RawQuoted) return {}; - return complete_expansion(context, flags, token, + return complete_expansion(context, token, start + token.pos, cursor_pos, pos_in_token - token.pos); } @@ -748,8 +748,7 @@ static Completions requote(Completions completions, Token::Type token_type) } Completions CommandManager::Completer::operator()( - const Context& context, CompletionFlags flags, - StringView command_line, ByteCount cursor_pos) + const Context& context, StringView command_line, ByteCount cursor_pos) { auto prefix = command_line.substr(0_byte, cursor_pos); CommandParser parser{prefix}; @@ -800,7 +799,7 @@ Completions CommandManager::Completer::operator()( case Token::Type::ShellExpand: case Token::Type::ValExpand: case Token::Type::FileExpand: - return complete_expansion(context, flags, token, start, cursor_pos, pos_in_token); + return complete_expansion(context, token, start, cursor_pos, pos_in_token); case Token::Type::Raw: case Token::Type::RawQuoted: @@ -840,7 +839,7 @@ Completions CommandManager::Completer::operator()( const auto& switch_desc = command.param_desc.switches.get(raw_params.at(raw_params.size() - 2).substr(1_byte)); if (not *switch_desc.arg_completer) return Completions{}; - return offset_pos(requote((*switch_desc.arg_completer)(context, flags, raw_params.back(), pos_in_token), token.type), start); + return offset_pos(requote((*switch_desc.arg_completer)(context, raw_params.back(), pos_in_token), token.type), start); } case ParametersParser::State::Positional: break; @@ -852,10 +851,10 @@ Completions CommandManager::Completer::operator()( Vector<String> params{parser.begin(), parser.end()}; auto index = params.size() - 1; - return offset_pos(requote(m_command_completer(context, flags, params, index, pos_in_token), token.type), start); + return offset_pos(requote(m_command_completer(context, params, index, pos_in_token), token.type), start); } case Token::Type::Expand: - return complete_expand(context, flags, token.content, start, cursor_pos, pos_in_token); + return complete_expand(context, token.content, start, cursor_pos, pos_in_token); default: break; } @@ -863,7 +862,7 @@ Completions CommandManager::Completer::operator()( } Completions CommandManager::NestedCompleter::operator()( - const Context& context, CompletionFlags flags, CommandParameters params, + const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { StringView prefix = params[token_to_complete].substr(0, pos_in_token); @@ -881,7 +880,7 @@ Completions CommandManager::NestedCompleter::operator()( } return m_command_completer - ? m_command_completer(context, flags, params.subrange(1), token_to_complete-1, pos_in_token) + ? m_command_completer(context, params.subrange(1), token_to_complete-1, pos_in_token) : Completions{}; } diff --git a/src/command_manager.hh b/src/command_manager.hh index c0a2e878..3f18e423 100644 --- a/src/command_manager.hh +++ b/src/command_manager.hh @@ -22,7 +22,6 @@ using CommandFunc = std::function<void (const ParametersParser& parser, const ShellContext& shell_context)>; using CommandCompleter = std::function<Completions (const Context& context, - CompletionFlags, CommandParameters, size_t, ByteCount)>; @@ -118,7 +117,7 @@ public: struct Completer { - Completions operator()(const Context& context, CompletionFlags flags, + Completions operator()(const Context& context, StringView command_line, ByteCount cursor_pos); private: @@ -128,8 +127,8 @@ public: struct NestedCompleter { - Completions operator()(const Context& context, CompletionFlags flags, - CommandParameters params, size_t token_to_complete, ByteCount pos_in_token); + Completions operator()(const Context& context, CommandParameters params, + size_t token_to_complete, ByteCount pos_in_token); private: String m_last_complete_command; diff --git a/src/commands.cc b/src/commands.cc index 90f4520d..bc11a945 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -83,7 +83,7 @@ template<typename... Completers> struct PerArgumentCommandCompleter; template<> struct PerArgumentCommandCompleter<> { - Completions operator()(const Context&, CompletionFlags, CommandParameters, + Completions operator()(const Context&, CommandParameters, size_t, ByteCount) const { return {}; } }; @@ -96,7 +96,7 @@ struct PerArgumentCommandCompleter<Completer, Rest...> : PerArgumentCommandCompl : PerArgumentCommandCompleter<Rest...>(std::forward<R>(rest)...), m_completer(std::forward<C>(completer)) {} - Completions operator()(const Context& context, CompletionFlags flags, + Completions operator()(const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { @@ -104,10 +104,10 @@ struct PerArgumentCommandCompleter<Completer, Rest...> : PerArgumentCommandCompl { const String& arg = token_to_complete < params.size() ? params[token_to_complete] : String(); - return m_completer(context, flags, arg, pos_in_token); + return m_completer(context, arg, pos_in_token); } return PerArgumentCommandCompleter<Rest...>::operator()( - context, flags, params.subrange(1), + context, params.subrange(1), token_to_complete-1, pos_in_token); } @@ -125,8 +125,8 @@ template<typename Completer> auto add_flags(Completer completer, Completions::Flags completions_flags) { return [completer=std::move(completer), completions_flags] - (const Context& context, CompletionFlags flags, StringView prefix, ByteCount cursor_pos) { - Completions res = completer(context, flags, prefix, cursor_pos); + (const Context& context, StringView prefix, ByteCount cursor_pos) { + Completions res = completer(context, prefix, cursor_pos); res.flags |= completions_flags; return res; }; @@ -140,7 +140,7 @@ auto menu(Completer completer) template<bool menu> auto filename_completer = make_completer( - [](const Context& context, CompletionFlags flags, StringView prefix, ByteCount cursor_pos) + [](const Context& context, StringView prefix, ByteCount cursor_pos) { return Completions{ 0_byte, cursor_pos, complete_filename(prefix, context.options()["ignored_files"].get<Regex>(), @@ -149,7 +149,7 @@ auto filename_completer = make_completer( template<bool menu> auto filename_arg_completer = - [](const Context& context, CompletionFlags flags, StringView prefix, ByteCount cursor_pos) -> Completions + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { return { 0_byte, cursor_pos, complete_filename(prefix, context.options()["ignored_files"].get<Regex>(), @@ -157,20 +157,19 @@ auto filename_arg_completer = menu ? Completions::Flags::Menu : Completions::Flags::None }; }; auto client_arg_completer = - [](const Context& context, CompletionFlags flags, StringView prefix, ByteCount cursor_pos) -> Completions + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { return { 0_byte, cursor_pos, ClientManager::instance().complete_client_name(prefix, cursor_pos), Completions::Flags::Menu }; }; auto arg_completer = [](auto candidates) -> PromptCompleter { - return [=](const Context& context, CompletionFlags flags, StringView prefix, ByteCount cursor_pos) -> Completions { + return [=](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { return Completions{ 0_byte, cursor_pos, complete(prefix, cursor_pos, candidates), Completions::Flags::Menu }; }; }; template<bool ignore_current = false> -static Completions complete_buffer_name(const Context& context, CompletionFlags flags, - StringView prefix, ByteCount cursor_pos) +static Completions complete_buffer_name(const Context& context, StringView prefix, ByteCount cursor_pos) { struct RankedMatchAndBuffer : RankedMatch { @@ -219,7 +218,7 @@ template<typename Func> auto make_single_word_completer(Func&& func) { return make_completer( - [func = std::move(func)](const Context& context, CompletionFlags flags, + [func = std::move(func)](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { auto candidate = { func(context) }; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, candidate) }; }); @@ -230,21 +229,21 @@ const ParameterDesc single_param{ {}, ParameterDesc::Flags::None, 1, 1 }; const ParameterDesc single_optional_param{ {}, ParameterDesc::Flags::None, 0, 1 }; const ParameterDesc double_params{ {}, ParameterDesc::Flags::None, 2, 2 }; -static Completions complete_scope(const Context&, CompletionFlags, +static Completions complete_scope(const Context&, StringView prefix, ByteCount cursor_pos) { static constexpr StringView scopes[] = { "global", "buffer", "window", "local"}; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, scopes) }; } -static Completions complete_scope_including_current(const Context&, CompletionFlags, +static Completions complete_scope_including_current(const Context&, StringView prefix, ByteCount cursor_pos) { static constexpr StringView scopes[] = { "global", "buffer", "window", "local", "current" }; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, scopes) }; } -static Completions complete_scope_no_global(const Context&, CompletionFlags, +static Completions complete_scope_no_global(const Context&, StringView prefix, ByteCount cursor_pos) { static constexpr StringView scopes[] = { "buffer", "window", "local", "current" }; @@ -252,7 +251,7 @@ static Completions complete_scope_no_global(const Context&, CompletionFlags, } -static Completions complete_command_name(const Context& context, CompletionFlags, +static Completions complete_command_name(const Context& context, StringView prefix, ByteCount cursor_pos) { return CommandManager::instance().complete_command_name( @@ -320,7 +319,7 @@ struct ShellScriptCompleter : AsyncShellScript { using AsyncShellScript::AsyncShellScript; - Completions operator()(const Context& context, CompletionFlags flags, + Completions operator()(const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { @@ -355,7 +354,7 @@ struct ShellCandidatesCompleter : AsyncShellScript { using AsyncShellScript::AsyncShellScript; - Completions operator()(const Context& context, CompletionFlags flags, + Completions operator()(const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { @@ -412,9 +411,9 @@ struct PromptCompleterAdapter { if (not m_completer) return {}; - return [completer=std::move(m_completer)](const Context& context, CompletionFlags flags, + return [completer=std::move(m_completer)](const Context& context, StringView prefix, ByteCount cursor_pos) { - return completer(context, flags, {String{String::NoCopy{}, prefix}}, 0, cursor_pos); + return completer(context, {String{String::NoCopy{}, prefix}}, 0, cursor_pos); }; } @@ -1011,7 +1010,7 @@ static constexpr auto highlighter_scopes = { "global/", "buffer/", "window/", "s template<bool add> Completions highlighter_cmd_completer( - const Context& context, CompletionFlags flags, CommandParameters params, + const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { if (token_to_complete == 0) @@ -1092,9 +1091,9 @@ const CommandDesc arrange_buffers_cmd = { ParameterDesc{{}, ParameterDesc::Flags::None, 1}, CommandFlags::None, CommandHelper{}, - [](const Context& context, CompletionFlags flags, CommandParameters params, size_t, ByteCount cursor_pos) + [](const Context& context, CommandParameters params, size_t, ByteCount cursor_pos) { - return menu(complete_buffer_name<false>)(context, flags, params.back(), cursor_pos); + return menu(complete_buffer_name<false>)(context, params.back(), cursor_pos); }, [](const ParametersParser& parser, Context&, const ShellContext&) { @@ -1192,8 +1191,7 @@ const CommandDesc remove_highlighter_cmd = { } }; -static Completions complete_hooks(const Context&, CompletionFlags, - StringView prefix, ByteCount cursor_pos) +static Completions complete_hooks(const Context&, StringView prefix, ByteCount cursor_pos) { return { 0_byte, cursor_pos, complete(prefix, cursor_pos, enum_desc(Meta::Type<Hook>{}) | transform(&EnumDesc<Hook>::name)) }; } @@ -1246,12 +1244,12 @@ const CommandDesc remove_hook_cmd = { double_params, CommandFlags::None, CommandHelper{}, - [](const Context& context, CompletionFlags flags, + [](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) -> Completions { if (token_to_complete == 0) - return menu(complete_scope)(context, flags, params[0], pos_in_token); + return menu(complete_scope)(context, params[0], pos_in_token); else if (token_to_complete == 1) { if (auto scope = get_scope_ifp(params[0], context)) @@ -1289,8 +1287,7 @@ Vector<String> params_to_shell(const ParametersParser& parser) return vars; } -Completions complete_completer_type(const Context&, CompletionFlags, - StringView prefix, ByteCount cursor_pos) +Completions complete_completer_type(const Context&, StringView prefix, ByteCount cursor_pos) { static constexpr StringView completers[] = {"file", "client", "buffer", "shell-script", "shell-script-candidates", "command", "shell"}; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, completers) }; @@ -1301,8 +1298,7 @@ CommandCompleter make_command_completer(StringView type, StringView param, Compl { if (type == "file") { - return [=](const Context& context, CompletionFlags flags, - CommandParameters params, + return [=](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { const String& prefix = params[token_to_complete]; const auto& ignored_files = context.options()["ignored_files"].get<Regex>(); @@ -1314,8 +1310,7 @@ CommandCompleter make_command_completer(StringView type, StringView param, Compl } else if (type == "client") { - return [=](const Context& context, CompletionFlags flags, - CommandParameters params, + return [=](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { const String& prefix = params[token_to_complete]; @@ -1327,12 +1322,11 @@ CommandCompleter make_command_completer(StringView type, StringView param, Compl } else if (type == "buffer") { - return [=](const Context& context, CompletionFlags flags, - CommandParameters params, + return [=](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { return add_flags(complete_buffer_name<false>, completions_flags)( - context, flags, params[token_to_complete], pos_in_token); + context, params[token_to_complete], pos_in_token); }; } else if (type == "shell-script") @@ -1353,12 +1347,11 @@ CommandCompleter make_command_completer(StringView type, StringView param, Compl return CommandManager::NestedCompleter{}; else if (type == "shell") { - return [=](const Context& context, CompletionFlags flags, - CommandParameters params, + return [=](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) { return add_flags(shell_complete, completions_flags)( - context, flags, params[token_to_complete], pos_in_token); + context, params[token_to_complete], pos_in_token); }; } else @@ -1470,8 +1463,7 @@ const CommandDesc define_command_cmd = { define_command }; -static Completions complete_alias_name(const Context& context, CompletionFlags, - StringView prefix, ByteCount cursor_pos) +static Completions complete_alias_name(const Context& context, StringView prefix, ByteCount cursor_pos) { return { 0_byte, cursor_pos, complete(prefix, cursor_pos, context.aliases().flatten_aliases() @@ -1604,8 +1596,7 @@ const CommandDesc debug_cmd = { CommandFlags::None, CommandHelper{}, make_completer( - [](const Context& context, CompletionFlags flags, - StringView prefix, ByteCount cursor_pos) -> Completions { + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { auto c = {"info", "buffers", "options", "memory", "shared-strings", "profile-hash-maps", "faces", "mappings", "regex", "registers"}; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, c), Completions::Flags::Menu }; @@ -1789,12 +1780,11 @@ const CommandDesc set_option_cmd = { }, CommandFlags::None, option_doc_helper, - [](const Context& context, CompletionFlags flags, - CommandParameters params, size_t token_to_complete, - ByteCount pos_in_token) -> Completions + [](const Context& context, CommandParameters params, + size_t token_to_complete, ByteCount pos_in_token) -> Completions { if (token_to_complete == 0) - return menu(complete_scope_including_current)(context, flags, params[0], pos_in_token); + return menu(complete_scope_including_current)(context, params[0], pos_in_token); else if (token_to_complete == 1) return { 0_byte, params[1].length(), GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token), @@ -1826,12 +1816,11 @@ const CommandDesc set_option_cmd = { } }; -Completions complete_option(const Context& context, CompletionFlags flags, - CommandParameters params, size_t token_to_complete, - ByteCount pos_in_token) +Completions complete_option(const Context& context, CommandParameters params, + size_t token_to_complete, ByteCount pos_in_token) { if (token_to_complete == 0) - return menu(complete_scope_no_global)(context, flags, params[0], pos_in_token); + return menu(complete_scope_no_global)(context, params[0], pos_in_token); else if (token_to_complete == 1) return { 0_byte, params[1].length(), GlobalScope::instance().option_registry().complete_option_name(params[1], pos_in_token), @@ -1900,7 +1889,7 @@ const CommandDesc declare_option_cmd = { CommandFlags::None, CommandHelper{}, make_completer( - [](const Context& context, CompletionFlags flags, + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { auto c = {"int", "bool", "str", "regex", "int-list", "str-list", "completions", "line-specs", "range-specs", "str-to-str-map"}; return { 0_byte, cursor_pos, complete(prefix, cursor_pos, c), Completions::Flags::Menu }; @@ -1946,12 +1935,11 @@ const CommandDesc declare_option_cmd = { }; template<bool unmap> -static Completions map_key_completer(const Context& context, CompletionFlags flags, - CommandParameters params, size_t token_to_complete, - ByteCount pos_in_token) +static Completions map_key_completer(const Context& context, CommandParameters params, + size_t token_to_complete, ByteCount pos_in_token) { if (token_to_complete == 0) - return menu(complete_scope)(context, flags, params[0], pos_in_token); + return menu(complete_scope)(context, params[0], pos_in_token); if (token_to_complete == 1) { auto& user_modes = get_scope(params[0], context).keymaps().user_modes(); @@ -2467,7 +2455,7 @@ const CommandDesc try_catch_cmd = { } }; -static Completions complete_face(const Context& context, CompletionFlags flags, +static Completions complete_face(const Context& context, StringView prefix, ByteCount cursor_pos) { return {0_byte, cursor_pos, @@ -2562,7 +2550,7 @@ const CommandDesc set_register_cmd = { CommandFlags::None, CommandHelper{}, make_completer( - [](const Context& context, CompletionFlags flags, + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { return { 0_byte, cursor_pos, RegisterManager::instance().complete_register_name(prefix, cursor_pos) }; @@ -2612,7 +2600,7 @@ const CommandDesc change_directory_cmd = { CommandFlags::None, CommandHelper{}, make_completer( - [](const Context& context, CompletionFlags flags, + [](const Context& context, StringView prefix, ByteCount cursor_pos) -> Completions { return { 0_byte, cursor_pos, complete_filename(prefix, @@ -2713,7 +2701,7 @@ const CommandDesc enter_user_mode_cmd = { }, CommandFlags::None, CommandHelper{}, - [](const Context& context, CompletionFlags flags, + [](const Context& context, CommandParameters params, size_t token_to_complete, ByteCount pos_in_token) -> Completions { @@ -2767,7 +2755,7 @@ const CommandDesc require_module_cmd = { CommandFlags::None, CommandHelper{}, make_completer(menu( - [](const Context&, CompletionFlags, StringView prefix, ByteCount cursor_pos) { + [](const Context&, StringView prefix, ByteCount cursor_pos) { return CommandManager::instance().complete_module_name(prefix.substr(0, cursor_pos)); })), [](const ParametersParser& parser, Context& context, const ShellContext&) diff --git a/src/completion.cc b/src/completion.cc index 60e79e07..c44319d8 100644 --- a/src/completion.cc +++ b/src/completion.cc @@ -8,8 +8,7 @@ namespace Kakoune { -Completions shell_complete(const Context& context, CompletionFlags flags, - StringView prefix, ByteCount cursor_pos) +Completions shell_complete(const Context& context, StringView prefix, ByteCount cursor_pos) { ByteCount word_start = 0; ByteCount word_end = 0; diff --git a/src/completion.hh b/src/completion.hh index 78024e19..cef703a2 100644 --- a/src/completion.hh +++ b/src/completion.hh @@ -42,22 +42,12 @@ struct Completions : candidates(std::move(candidates)), start(start), end(end), flags{flags} {} }; -enum class CompletionFlags -{ - None = 0, - Fast = 1 << 0, -}; - -constexpr bool with_bit_ops(Meta::Type<CompletionFlags>) { return true; } - -inline Completions complete_nothing(const Context&, CompletionFlags, - StringView, ByteCount cursor_pos) +inline Completions complete_nothing(const Context&, StringView, ByteCount cursor_pos) { return {cursor_pos, cursor_pos}; } -Completions shell_complete(const Context& context, CompletionFlags, - StringView, ByteCount cursor_pos); +Completions shell_complete(const Context& context, StringView, ByteCount cursor_pos); inline Completions offset_pos(Completions completion, ByteCount offset) { diff --git a/src/input_handler.cc b/src/input_handler.cc index 3ddbfdfb..0f2c8987 100644 --- a/src/input_handler.cc +++ b/src/input_handler.cc @@ -692,7 +692,7 @@ public: Timer::Callback{} : [this](Timer&) { RefPtr<InputMode> keep_alive{this}; // hook or m_callback could trigger pop_mode() if (m_auto_complete and m_refresh_completion_pending) - refresh_completions(CompletionFlags::Fast); + refresh_completions(); if (m_line_changed) { m_callback(m_line_editor.line(), PromptEvent::Change, context()); @@ -829,10 +829,10 @@ public: CandidateList& candidates = m_completions.candidates; if (m_auto_complete and m_refresh_completion_pending) - refresh_completions(CompletionFlags::Fast); + refresh_completions(); if (candidates.empty()) // manual completion, we need to ask our completer for completions { - refresh_completions(CompletionFlags::None); + refresh_completions(); if ((not m_prefix_in_completions and candidates.size() > 1) or candidates.size() > 2) return; @@ -890,7 +890,7 @@ public: }); if (m_explicit_completer) - refresh_completions(CompletionFlags::None); + refresh_completions(); }, "enter completion type", "f: filename\n" "w: buffer word\n"); @@ -901,7 +901,7 @@ public: m_auto_complete = not m_auto_complete; if (m_auto_complete) - refresh_completions(CompletionFlags::Fast); + refresh_completions(); else if (context().has_client()) { clear_completions(); @@ -996,7 +996,7 @@ private: template<typename Completer> void use_explicit_completer(Completer&& completer) { - m_explicit_completer = [completer](const Context& context, CompletionFlags flags, StringView content, ByteCount cursor_pos) { + m_explicit_completer = [completer](const Context& context, StringView content, ByteCount cursor_pos) { Optional<Token> last_token; CommandParser parser{content.substr(0_byte, cursor_pos)}; while (auto token = parser.read_token(false)) @@ -1012,7 +1012,7 @@ private: }; } - void refresh_completions(CompletionFlags flags) + void refresh_completions() { try { @@ -1022,7 +1022,7 @@ private: return; m_current_completion = -1; const String& line = m_line_editor.line(); - m_completions = completer(context(), flags, line, + m_completions = completer(context(), line, line.byte_count_to(m_line_editor.cursor_pos())); if (not context().has_client()) return; diff --git a/src/input_handler.hh b/src/input_handler.hh index 54c5fd5b..32e9bfca 100644 --- a/src/input_handler.hh +++ b/src/input_handler.hh @@ -42,8 +42,7 @@ class InputMode; enum class KeymapMode : char; enum class CursorMode; -using PromptCompleter = std::function<Completions (const Context&, CompletionFlags, - StringView, ByteCount)>; +using PromptCompleter = std::function<Completions (const Context&, StringView, ByteCount)>; enum class InsertMode : unsigned { Insert, diff --git a/src/normal.cc b/src/normal.cc index 056f11de..6aa5b703 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -491,9 +491,9 @@ void command(const Context& context, EnvVarMap env_vars, char reg = 0) ":", {}, default_command, context.faces()["Prompt"], PromptFlags::DropHistoryEntriesWithBlankPrefix, ':', - [completer=CommandManager::Completer{}](const Context& context, CompletionFlags flags, + [completer=CommandManager::Completer{}](const Context& context, StringView cmd_line, ByteCount pos) mutable { - return completer(context, flags, cmd_line, pos); + return completer(context, cmd_line, pos); }, [env_vars = std::move(env_vars), default_command](StringView cmdline, PromptEvent event, Context& context) { if (context.has_client()) @@ -842,7 +842,7 @@ void regex_prompt(Context& context, String prompt, char reg, RegexMode mode, Fun context.input_handler().prompt( std::move(prompt), {}, default_regex, context.faces()["Prompt"], PromptFlags::Search, reg, - [](const Context& context, CompletionFlags, StringView regex, ByteCount pos) -> Completions { + [](const Context& context, StringView regex, ByteCount pos) -> Completions { auto current_word = [](StringView s) { auto it = s.end(); while (it != s.begin() and is_word(*(it-1))) diff --git a/src/parameters_parser.hh b/src/parameters_parser.hh index f1ff8b73..1b91b6fc 100644 --- a/src/parameters_parser.hh +++ b/src/parameters_parser.hh @@ -40,9 +40,7 @@ struct wrong_argument_count : public parameter_error class Context; struct Completions; -enum class CompletionFlags; -using ArgCompleter = std::function<Completions (const Context&, CompletionFlags, - StringView, ByteCount)>; +using ArgCompleter = std::function<Completions (const Context&, StringView, ByteCount)>; struct SwitchDesc { |
