1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-10 07:07:36 +00:00

LibLine+Userland: Make suggestion offsets per-suggestion

This allows the user to modify different parts of the input with
different suggestions.
This commit is contained in:
Ali Mohammad Pur 2022-02-28 17:28:47 +03:30 committed by Andreas Kling
parent 1fcef99ff7
commit 118590325a
6 changed files with 79 additions and 51 deletions

View file

@ -1580,6 +1580,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
Line::CompletionSuggestion completion { key, Line::CompletionSuggestion::ForSearch };
if (!results.contains_slow(completion)) { // hide duplicates
results.append(String(key));
results.last().invariant_offset = property_pattern.length();
}
}
}
@ -1605,8 +1606,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto const* object = MUST(variable.to_object(interpreter->global_object()));
auto const& shape = object->shape();
list_all_properties(shape, property_name);
if (results.size())
editor.suggest(property_name.length());
break;
}
case CompleteVariable: {
@ -1614,12 +1613,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
list_all_properties(variable.shape(), variable_name);
for (String& name : global_environment.declarative_record().bindings()) {
if (name.starts_with(variable_name))
if (name.starts_with(variable_name)) {
results.empend(name);
results.last().invariant_offset = variable_name.length();
}
}
if (results.size())
editor.suggest(variable_name.length());
break;
}
default: