#ifndef highlighter_hh_INCLUDED #define highlighter_hh_INCLUDED #include "function_group.hh" #include "function_registry.hh" #include "memoryview.hh" #include "string.hh" #include "utils.hh" #include namespace Kakoune { class DisplayBuffer; class Context; enum class HighlightFlags { Highlight, MoveOnly }; // An Highlighter is a function which mutates a DisplayBuffer in order to // change the visual representation of a file. It could be changing text // color, adding information text (line numbering for example) or replacing // buffer content (folding for example) using HighlighterFunc = std::function; using HighlighterAndId = std::pair; using HighlighterParameters = memoryview; using HighlighterFactory = std::function; using HighlighterGroup = FunctionGroup; struct HighlighterRegistry : FunctionRegistry, Singleton {}; struct DefinedHighlighters : public HighlighterGroup, public Singleton { }; } #endif // highlighter_hh_INCLUDED