// CppHighlighter.h - minimal stateless C/C++ line highlighter #pragma once #include #include #include #include #include "LanguageHighlighter.h" class Buffer; namespace kte { class CppHighlighter final : public StatefulHighlighter { public: CppHighlighter(); ~CppHighlighter() override = default; void HighlightLine(const Buffer &buf, int row, std::vector &out) const override; LineState HighlightLineStateful(const Buffer &buf, int row, const LineState &prev, std::vector &out) const override; private: std::unordered_set keywords_; std::unordered_set types_; static bool is_ident_start(char c); static bool is_ident_char(char c); }; } // namespace kte