mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:37:35 +00:00
LibSyntax+Userland: Make LibSyntax not depend on LibGUI
This moves some stuff around to make LibGUI depend on LibSyntax instead of the other way around, as not every application that wishes to do syntax highlighting is necessarily a LibGUI (or even a GUI) application.
This commit is contained in:
parent
2495302991
commit
ba4db899d4
26 changed files with 773 additions and 683 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2023, Ali Mohammad Pur <mpfard@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -8,8 +9,8 @@
|
|||
|
||||
#include <AK/DeprecatedString.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <LibGUI/TextDocument.h>
|
||||
#include <LibGUI/TextPosition.h>
|
||||
#include <LibSyntax/Document.h>
|
||||
#include <LibSyntax/TextPosition.h>
|
||||
|
||||
namespace Syntax {
|
||||
|
||||
|
@ -17,27 +18,27 @@ class HighlighterClient {
|
|||
public:
|
||||
virtual ~HighlighterClient() = default;
|
||||
|
||||
virtual Vector<GUI::TextDocumentSpan> const& spans() const = 0;
|
||||
virtual void set_span_at_index(size_t index, GUI::TextDocumentSpan span) = 0;
|
||||
virtual Vector<TextDocumentSpan> const& spans() const = 0;
|
||||
virtual void set_span_at_index(size_t index, TextDocumentSpan span) = 0;
|
||||
virtual void clear_spans() { do_set_spans({}); }
|
||||
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion>& folding_regions() = 0;
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion> const& folding_regions() const = 0;
|
||||
virtual Vector<TextDocumentFoldingRegion>& folding_regions() = 0;
|
||||
virtual Vector<TextDocumentFoldingRegion> const& folding_regions() const = 0;
|
||||
|
||||
virtual DeprecatedString highlighter_did_request_text() const = 0;
|
||||
virtual void highlighter_did_request_update() = 0;
|
||||
virtual GUI::TextDocument& highlighter_did_request_document() = 0;
|
||||
virtual GUI::TextPosition highlighter_did_request_cursor() const = 0;
|
||||
virtual void highlighter_did_set_spans(Vector<GUI::TextDocumentSpan>) = 0;
|
||||
virtual void highlighter_did_set_folding_regions(Vector<GUI::TextDocumentFoldingRegion>) = 0;
|
||||
virtual Document& highlighter_did_request_document() = 0;
|
||||
virtual TextPosition highlighter_did_request_cursor() const = 0;
|
||||
virtual void highlighter_did_set_spans(Vector<TextDocumentSpan>) = 0;
|
||||
virtual void highlighter_did_set_folding_regions(Vector<TextDocumentFoldingRegion>) = 0;
|
||||
|
||||
void do_set_spans(Vector<GUI::TextDocumentSpan> spans) { highlighter_did_set_spans(move(spans)); }
|
||||
void do_set_folding_regions(Vector<GUI::TextDocumentFoldingRegion> folding_regions) { highlighter_did_set_folding_regions(move(folding_regions)); }
|
||||
void do_set_spans(Vector<TextDocumentSpan> spans) { highlighter_did_set_spans(move(spans)); }
|
||||
void do_set_folding_regions(Vector<TextDocumentFoldingRegion> folding_regions) { highlighter_did_set_folding_regions(move(folding_regions)); }
|
||||
void do_update() { highlighter_did_request_update(); }
|
||||
|
||||
DeprecatedString get_text() const { return highlighter_did_request_text(); }
|
||||
GUI::TextDocument& get_document() { return highlighter_did_request_document(); }
|
||||
GUI::TextPosition get_cursor() const { return highlighter_did_request_cursor(); }
|
||||
Document& get_document() { return highlighter_did_request_document(); }
|
||||
TextPosition get_cursor() const { return highlighter_did_request_cursor(); }
|
||||
|
||||
static constexpr auto span_collection_index = 0;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue