class EE::UI::Doc::SyntaxHighlighter
#include <syntaxhighlighter.hpp>
class SyntaxHighlighter {
public:
// construction
SyntaxHighlighter(TextDocument* doc);
~SyntaxHighlighter();
// methods
void changeDoc(TextDocument* doc);
void reset();
void invalidate(Int64 lineIndex);
const std::vector<SyntaxTokenPosition>& getLine(const size_t& index, bool mustTokenize = true);
Int64 getFirstInvalidLine() const;
Int64 getMaxWantedLine() const;
bool updateDirty(int visibleLinesCount = 40);
const SyntaxDefinition& getSyntaxDefinitionFromTextPosition(const TextPosition& position);
SyntaxStyleType getTokenTypeAt(const TextPosition& pos);
SyntaxTokenPosition getTokenPositionAt(const TextPosition& pos);
void setLine(const size_t& line, const TokenizedLine& tokenization);
void mergeLine(const size_t& line, const TokenizedLine& tokenization);
TokenizedLine tokenizeLine(const size_t& line, const SyntaxState& state = SyntaxState{});
Mutex& getLinesMutex();
void moveHighlight(const Int64& fromLine, const Int64& toLine, const Int64& numLines);
Uint64 getTokenizedLineSignature(const size_t& index);
const Int64& getMaxTokenizationLength() const;
void setMaxTokenizationLength(const Int64& maxTokenizationLength);
void tokenizeAsync(std::shared_ptr<ThreadPool> pool, const std::function<void()>& onDone = {});
bool isTokenizingAsync() const;
void setStopTokenizingAsync();
};