diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-11-13 19:19:53 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-11-13 19:22:33 +1100 |
| commit | fc7be678ed0ec71880a58a55de285c88bbd64bec (patch) | |
| tree | faa665369197a5a49fb294d72b20d9474ed1e335 /src | |
| parent | 2261b48e35eac3d62346745e0c2beef7f72fb37d (diff) | |
Change window_range to emit each element as a separate string
Diffstat (limited to 'src')
| -rw-r--r-- | src/input_handler.cc | 42 | ||||
| -rw-r--r-- | src/main.cc | 5 |
2 files changed, 24 insertions, 23 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc index 5b60026e..a5a25413 100644 --- a/src/input_handler.cc +++ b/src/input_handler.cc @@ -1115,32 +1115,32 @@ private: const String& line = m_line_editor.line(); m_completions = completer(context(), flags, line, line.byte_count_to(m_line_editor.cursor_pos())); - const bool menu = (bool)(m_completions.flags & Completions::Flags::Menu); - if (context().has_client()) - { - if (m_completions.candidates.empty()) - return context().client().menu_hide(); + if (not context().has_client()) + return; - Vector<DisplayLine> items; - for (auto& candidate : m_completions.candidates) - items.push_back({ candidate, {} }); + if (m_completions.candidates.empty()) + return context().client().menu_hide(); - const auto menu_style = (m_flags & PromptFlags::Search) ? MenuStyle::Search : MenuStyle::Prompt; - context().client().menu_show(items, {}, menu_style); + Vector<DisplayLine> items; + for (auto& candidate : m_completions.candidates) + items.push_back({ candidate, {} }); - if (menu) - context().client().menu_select(0); + const auto menu_style = (m_flags & PromptFlags::Search) ? MenuStyle::Search : MenuStyle::Prompt; + context().client().menu_show(items, {}, menu_style); - auto prefix = line.substr(m_completions.start, m_completions.end - m_completions.start); - if (not menu and not contains(m_completions.candidates, prefix)) - { - m_current_completion = m_completions.candidates.size(); - m_completions.candidates.push_back(prefix.str()); - m_prefix_in_completions = true; - } - else - m_prefix_in_completions = false; + const bool menu = (bool)(m_completions.flags & Completions::Flags::Menu); + if (menu) + context().client().menu_select(0); + + auto prefix = line.substr(m_completions.start, m_completions.end - m_completions.start); + if (not menu and not contains(m_completions.candidates, prefix)) + { + m_current_completion = m_completions.candidates.size(); + m_completions.candidates.push_back(prefix.str()); + m_prefix_in_completions = true; } + else + m_prefix_in_completions = false; } catch (runtime_error&) {} } diff --git a/src/main.cc b/src/main.cc index 1d5b8dd7..bc12f335 100644 --- a/src/main.cc +++ b/src/main.cc @@ -46,6 +46,7 @@ struct { StringView notes; } constexpr version_notes[] = { { 0, + "» {+b}%val{window_range}{} is now emitted as separate strings\n" "» {+b}+{} only duplicates identical selections a single time\n" "» {+u}daemonize-session{} command\n" }, { @@ -387,8 +388,8 @@ static const EnvVarDesc builtin_env_vars[] = { { [](StringView name, const Context& context) -> Vector<String> { const auto& setup = context.window().last_display_setup(); - return {format("{} {} {} {}", setup.first_line, setup.first_column, - setup.line_count, 0)}; + return {to_string(setup.first_line), to_string(setup.first_column), + to_string(setup.line_count), to_string(0)}; } }, { "history", false, |
