4#ifndef _Stroika_Frameworks_Led_SpellCheckEngine_h_
5#define _Stroika_Frameworks_Led_SpellCheckEngine_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
16#include "TextBreaks.h"
18namespace Stroika::Frameworks::Led {
26 class SpellCheckEngine {
28 SpellCheckEngine () =
default;
31 virtual ~SpellCheckEngine () =
default;
70 virtual bool ScanForUndefinedWord (
const Led_tChar* startBuf,
const Led_tChar* endBuf,
const Led_tChar** cursor,
71 const Led_tChar** wordStartResult,
const Led_tChar** wordEndResult) = 0;
74 nonvirtual
bool LookupWord (
const Led_tString& checkWord, Led_tString* matchedWordResult =
nullptr);
86 virtual bool LookupWord_ (
const Led_tString& checkWord, Led_tString* matchedWordResult) = 0;
94 virtual vector<Led_tString> GenerateSuggestions (
const Led_tString& misspelledWord) = 0;
106 virtual TextBreaks* PeekAtTextBreaksUsed () = 0;
114 virtual UDInterface* GetUDInterface () = 0;
123 nonvirtual
void Invariant ()
const;
125#if qStroika_Foundation_Debug_AssertionsChecked
127 virtual void Invariant_ ()
const;
136 class SpellCheckEngine::UDInterface {
138 UDInterface () =
default;
141 virtual ~UDInterface () =
default;
149 virtual bool AddWordToUserDictionarySupported ()
const = 0;
157 virtual void AddWordToUserDictionary (
const Led_tString& word) = 0;
167#include "SpellCheckEngine.inl"