X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpellChecker.h;h=f908ba2b471008e7f7f5b2d1f690dc5b4544f8e7;hb=5608f6fdb67b86b4cf3d9215d24d7734239ad05a;hp=bac19d116104f39b12af4fc3c0dc5553ed4d415c;hpb=5c59e8c7cb3a804d403061e76a34c0378320b9b0;p=lyx.git diff --git a/src/SpellChecker.h b/src/SpellChecker.h index bac19d1161..f908ba2b47 100644 --- a/src/SpellChecker.h +++ b/src/SpellChecker.h @@ -32,36 +32,84 @@ public: /// the result from checking a single word enum Result { /// word is correct - OK = 1, + WORD_OK = 1, /// root of given word was found - ROOT, + ROOT_FOUND, /// word found through compound formation COMPOUND_WORD, /// word not found UNKNOWN_WORD, /// number of other ignored "word" - IGNORED_WORD + IGNORED_WORD, + /// number of personal dictionary "word" + LEARNED_WORD, + /// missing dictionary for language + NO_DICTIONARY }; + SpellChecker() : change_number_(0) {} + virtual ~SpellChecker() {} + /// does the spell check failed + static bool misspelled(Result res) { + return res != WORD_OK + && res != IGNORED_WORD + && res != NO_DICTIONARY + && res != LEARNED_WORD; } + /// check the given word of the given lang code and return the result virtual enum Result check(WordLangTuple const &) = 0; - + /// Gives suggestions. virtual void suggest(WordLangTuple const &, docstring_list & suggestions) = 0; + /// Lemmatizing: return stem of word (used by Thesaurus). + virtual void stem(WordLangTuple const &, docstring_list & suggestions) = 0; + /// insert the given word into the personal dictionary virtual void insert(WordLangTuple const &) = 0; + /// remove the given word from the personal dictionary + virtual void remove(WordLangTuple const &) = 0; + /// accept the given word temporarily virtual void accept(WordLangTuple const &) = 0; /// check if dictionary exists virtual bool hasDictionary(Language const *) const = 0; + /// how many valid dictionaries were found + virtual int numDictionaries() const = 0; + + /// if speller can spell check whole paragraph return true + virtual bool canCheckParagraph() const { return false; } + + /// count of misspelled words + virtual int numMisspelledWords() const { return 0; } + + /// start position and length of misspelled word at index + virtual void misspelledWord( + int /* index */, + int & start, int & length) const + { + /// index is used here to make the compiler happy + start = 0; + length = 0; + } + /// give an error message on messy exit virtual docstring const error() = 0; + + /// spell checker state versioning support + typedef unsigned long int ChangeNumber ; + ChangeNumber changeNumber() const { return change_number_; } + void changeNumber(ChangeNumber value) { change_number_ = value; } + void nextChangeNumber() { ++change_number_; } + virtual void advanceChangeNumber() = 0; + +private: + ChangeNumber change_number_; }; /// Access to the singleton SpellChecker.