From 479c31b571513b068aaa5881eec3624d3ac8cd1b Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 10 Jun 2014 19:58:02 +0100 Subject: Replace FunctionGroup template with HighlighterGroup class --- src/highlighter_group.hh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/highlighter_group.hh (limited to 'src/highlighter_group.hh') diff --git a/src/highlighter_group.hh b/src/highlighter_group.hh new file mode 100644 index 00000000..8445e445 --- /dev/null +++ b/src/highlighter_group.hh @@ -0,0 +1,41 @@ +#ifndef highlighter_group_hh_INCLUDED +#define highlighter_group_hh_INCLUDED + +#include "exception.hh" +#include "id_map.hh" +#include "highlighter.hh" +#include "utils.hh" + +namespace Kakoune +{ + +struct group_not_found : public runtime_error +{ + using runtime_error::runtime_error; +}; + +class HighlighterGroup +{ +public: + void operator()(const Context& context, HighlightFlags flags, DisplayBuffer& display_buffer); + + void append(HighlighterAndId&& hl); + void remove(StringView id); + + HighlighterGroup& get_group(StringView path, Codepoint path_separator = 0); + + CandidateList complete_id(StringView prefix, ByteCount cursor_pos) const; + CandidateList complete_group_id(StringView prefix, ByteCount cursor_pos) const; + +private: + id_map m_highlighters; +}; + +struct DefinedHighlighters : public HighlighterGroup, + public Singleton +{ +}; + +} + +#endif // highlighter_group_hh_INCLUDED -- cgit v1.2.3