#ifndef word_db_hh_INCLUDED #define word_db_hh_INCLUDED #include "buffer.hh" #include "line_change_watcher.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); int get_word_occurences(const String& word) const; using WordList = std::map; private: using LineToWords = std::vector>; void update_db(); LineChangeWatcher m_change_watcher; WordList m_words; LineToWords m_line_to_words; }; } #endif // word_db_hh_INCLUDED