#ifndef word_db_hh_INCLUDED #define word_db_hh_INCLUDED #include "buffer.hh" #include namespace Kakoune { class String; // maintain a database of words available in a buffer class WordDB { public: WordDB(const Buffer& buffer); std::vector find_prefix(const String& prefix); std::vector find_subsequence(const String& subsequence); int get_word_occurences(const String& word) const; using WordList = std::map; private: using LineToWords = std::vector>; void update_db(); safe_ptr m_buffer; size_t m_timestamp; WordList m_words; LineToWords m_line_to_words; }; } #endif // word_db_hh_INCLUDED