diff options
| author | Maxime Coste <mawww@kakoune.org> | 2017-05-03 19:41:37 +0100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2017-05-07 16:26:14 +0100 |
| commit | fa5ae65f3a16abffc9a8cc5b71de41015dc0c2bf (patch) | |
| tree | b9d0187d28f4f90b2b422edffa0dbb0067c0f76c /src/highlighter_group.hh | |
| parent | 55631c8d8ef29f8c48d43410d487b6bfeb37c73b (diff) | |
Move passes logic to the base Highlighter class
Validate that childs of HighlighterGroup are matching its passes.
Diffstat (limited to 'src/highlighter_group.hh')
| -rw-r--r-- | src/highlighter_group.hh | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/highlighter_group.hh b/src/highlighter_group.hh index 763fbbb7..12fc07d3 100644 --- a/src/highlighter_group.hh +++ b/src/highlighter_group.hh @@ -17,10 +17,7 @@ struct child_not_found : public runtime_error class HighlighterGroup : public Highlighter { public: - void highlight(const Context& context, HighlightPass pass, DisplayBuffer& display_buffer, BufferRange range) override; - - void compute_display_setup(const Context& context, HighlightPass pass, - DisplaySetup& setup) override; + HighlighterGroup(HighlightPass passes) : Highlighter{passes} {} bool has_children() const override { return true; } void add_child(HighlighterAndId&& hl) override; @@ -31,6 +28,9 @@ public: Completions complete_child(StringView path, ByteCount cursor_pos, bool group) const override; private: + void do_highlight(const Context& context, HighlightPass pass, DisplayBuffer& display_buffer, BufferRange range) override; + void do_compute_display_setup(const Context& context, HighlightPass pass, DisplaySetup& setup) override; + using HighlighterMap = HashMap<String, std::unique_ptr<Highlighter>, MemoryDomain::Highlight>; HighlighterMap m_highlighters; }; @@ -38,6 +38,7 @@ private: struct DefinedHighlighters : public HighlighterGroup, public Singleton<DefinedHighlighters> { + DefinedHighlighters() : HighlighterGroup{HighlightPass::All} {} }; } |
