Use menu behavior for add-highlighter/remove-highlighter completion
This means that typing :add-highlighter g c 80 results in :add-highlighter global/ column 80 Paths for add-highlighter do not get the menu behavior because we want to be able to type "global/foo" even if "global/foobar" exists.
This commit is contained in:
parent
8fac31ba76
commit
7f08ac3de2
|
@ -883,7 +883,8 @@ Completions highlighter_cmd_completer(
|
||||||
StringView path = params[0];
|
StringView path = params[0];
|
||||||
auto sep_it = find(path, '/');
|
auto sep_it = find(path, '/');
|
||||||
if (sep_it == path.end())
|
if (sep_it == path.end())
|
||||||
return { 0_byte, pos_in_token, complete(path, pos_in_token, highlighter_scopes) };
|
return { 0_byte, pos_in_token, complete(path, pos_in_token, highlighter_scopes),
|
||||||
|
Completions::Flags::Menu };
|
||||||
|
|
||||||
StringView scope{path.begin(), sep_it};
|
StringView scope{path.begin(), sep_it};
|
||||||
HighlighterGroup* root = nullptr;
|
HighlighterGroup* root = nullptr;
|
||||||
|
@ -900,7 +901,8 @@ Completions highlighter_cmd_completer(
|
||||||
else if (add and token_to_complete == 1)
|
else if (add and token_to_complete == 1)
|
||||||
{
|
{
|
||||||
StringView name = params[1];
|
StringView name = params[1];
|
||||||
return { 0_byte, name.length(), complete(name, pos_in_token, HighlighterRegistry::instance() | transform(&HighlighterRegistry::Item::key)) };
|
return { 0_byte, name.length(), complete(name, pos_in_token, HighlighterRegistry::instance() | transform(&HighlighterRegistry::Item::key)),
|
||||||
|
Completions::Flags::Menu };
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return {};
|
return {};
|
||||||
|
|
|
@ -75,7 +75,8 @@ Completions HighlighterGroup::complete_child(StringView path, ByteCount cursor_p
|
||||||
| transform([](auto& hl) { return hl.value->has_children() ? hl.key + "/" : hl.key; })
|
| transform([](auto& hl) { return hl.value->has_children() ? hl.key + "/" : hl.key; })
|
||||||
| gather<Vector<String>>());
|
| gather<Vector<String>>());
|
||||||
|
|
||||||
return { 0, 0, std::move(candidates) };
|
auto completions_flags = group ? Completions::Flags::None : Completions::Flags::Menu;
|
||||||
|
return { 0, 0, std::move(candidates), completions_flags };
|
||||||
}
|
}
|
||||||
|
|
||||||
void Highlighters::highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange range)
|
void Highlighters::highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange range)
|
||||||
|
|
|
@ -2089,7 +2089,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
auto container = m_regions | transform(&decltype(m_regions)::Item::key);
|
auto container = m_regions | transform(&decltype(m_regions)::Item::key);
|
||||||
return { 0, 0, complete(path, cursor_pos, container) };
|
auto completions_flags = group ? Completions::Flags::None : Completions::Flags::Menu;
|
||||||
|
return { 0, 0, complete(path, cursor_pos, container), completions_flags };
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::unique_ptr<Highlighter> create(HighlighterParameters params, Highlighter*)
|
static std::unique_ptr<Highlighter> create(HighlighterParameters params, Highlighter*)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user