1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:17:45 +00:00

LibLine: Do a whole bunch of internal error propagation

This commit is contained in:
Tim Schumacher 2023-01-13 12:29:46 +01:00 committed by Sam Atkins
parent f9f1e1dd49
commit 40cb41a16c
8 changed files with 212 additions and 187 deletions

View file

@ -18,20 +18,22 @@ class Editor;
class SuggestionDisplay {
public:
virtual ~SuggestionDisplay() = default;
virtual void display(SuggestionManager const&) = 0;
virtual bool cleanup() = 0;
virtual ErrorOr<void> display(SuggestionManager const&) = 0;
virtual ErrorOr<bool> cleanup() = 0;
virtual void finish() = 0;
virtual void set_initial_prompt_lines(size_t) = 0;
void redisplay(SuggestionManager const& manager, size_t lines, size_t columns)
ErrorOr<void> redisplay(SuggestionManager const& manager, size_t lines, size_t columns)
{
if (m_is_showing_suggestions) {
cleanup();
TRY(cleanup());
set_vt_size(lines, columns);
display(manager);
TRY(display(manager));
} else {
set_vt_size(lines, columns);
}
return {};
}
virtual void set_vt_size(size_t lines, size_t columns) = 0;
@ -62,8 +64,8 @@ public:
{
}
virtual ~XtermSuggestionDisplay() override = default;
virtual void display(SuggestionManager const&) override;
virtual bool cleanup() override;
virtual ErrorOr<void> display(SuggestionManager const&) override;
virtual ErrorOr<bool> cleanup() override;
virtual void finish() override
{
m_pages.clear();