mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:17:36 +00:00
LibSyntax+LibGUI: Let syntax highlighters assign folding regions
This commit is contained in:
parent
92b128e20a
commit
d169af117d
4 changed files with 19 additions and 0 deletions
|
@ -2483,4 +2483,10 @@ void TextEditor::on_search_results(GUI::TextRange current, Vector<GUI::TextRange
|
|||
update();
|
||||
}
|
||||
|
||||
void TextEditor::highlighter_did_set_folding_regions(Vector<GUI::TextDocumentFoldingRegion> folding_regions)
|
||||
{
|
||||
document().set_folding_regions(move(folding_regions));
|
||||
recompute_all_visual_lines();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -281,6 +281,7 @@ protected:
|
|||
int fixed_elements_width() const { return gutter_width() + ruler_width() + folding_indicator_width(); }
|
||||
|
||||
virtual void highlighter_did_set_spans(Vector<TextDocumentSpan> spans) final { document().set_spans(Syntax::HighlighterClient::span_collection_index, move(spans)); }
|
||||
virtual void highlighter_did_set_folding_regions(Vector<TextDocumentFoldingRegion> folding_regions) final;
|
||||
|
||||
private:
|
||||
friend class TextDocumentLine;
|
||||
|
@ -299,6 +300,8 @@ private:
|
|||
virtual Vector<TextDocumentSpan>& spans() final { return document().spans(); }
|
||||
virtual Vector<TextDocumentSpan> const& spans() const final { return document().spans(); }
|
||||
virtual void set_span_at_index(size_t index, TextDocumentSpan span) final { document().set_span_at_index(index, move(span)); }
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion>& folding_regions() final { return document().folding_regions(); };
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion> const& folding_regions() const final { return document().folding_regions(); };
|
||||
virtual void highlighter_did_request_update() final { update(); }
|
||||
virtual DeprecatedString highlighter_did_request_text() const final { return text(); }
|
||||
virtual GUI::TextDocument& highlighter_did_request_document() final { return document(); }
|
||||
|
|
|
@ -132,13 +132,18 @@ private:
|
|||
virtual Vector<GUI::TextDocumentSpan> const& spans() const override { return m_spans; }
|
||||
virtual void set_span_at_index(size_t index, GUI::TextDocumentSpan span) override { m_spans.at(index) = move(span); }
|
||||
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion>& folding_regions() override { return m_folding_regions; }
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion> const& folding_regions() const override { return m_folding_regions; }
|
||||
|
||||
virtual DeprecatedString highlighter_did_request_text() const override { return m_text; }
|
||||
virtual void highlighter_did_request_update() override { }
|
||||
virtual GUI::TextDocument& highlighter_did_request_document() override { return m_document; }
|
||||
virtual GUI::TextPosition highlighter_did_request_cursor() const override { return {}; }
|
||||
virtual void highlighter_did_set_spans(Vector<GUI::TextDocumentSpan> spans) override { m_spans = move(spans); }
|
||||
virtual void highlighter_did_set_folding_regions(Vector<GUI::TextDocumentFoldingRegion> folding_regions) override { m_folding_regions = folding_regions; }
|
||||
|
||||
Vector<GUI::TextDocumentSpan> m_spans;
|
||||
Vector<GUI::TextDocumentFoldingRegion> m_folding_regions;
|
||||
GUI::TextDocument& m_document;
|
||||
StringView m_text;
|
||||
GUI::TextPosition m_start;
|
||||
|
|
|
@ -21,13 +21,18 @@ public:
|
|||
virtual Vector<GUI::TextDocumentSpan> const& spans() const = 0;
|
||||
virtual void set_span_at_index(size_t index, GUI::TextDocumentSpan span) = 0;
|
||||
|
||||
virtual Vector<GUI::TextDocumentFoldingRegion>& folding_regions() = 0;
|
||||
virtual Vector<GUI::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;
|
||||
|
||||
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_update() { highlighter_did_request_update(); }
|
||||
|
||||
DeprecatedString get_text() const { return highlighter_did_request_text(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue