4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
10 * Full author contact details are available in file CREDITS.
16 #include "SpellBase.h"
18 #include "support/docstring.h"
20 #include <boost/scoped_ptr.hpp>
31 /// i/a spell process-based spellchecker
32 class ISpell : public SpellBase {
34 ISpell(BufferParams const & params, std::string const & lang);
38 /// return true if the spellchecker instance still exists
41 /// check the given word and return the result
42 virtual enum Result check(WordLangTuple const & word);
44 /// insert the given word into the personal dictionary
45 virtual void insert(WordLangTuple const & word);
47 /// accept the given word temporarily
48 virtual void accept(WordLangTuple const & word);
50 /// return the next near miss after a SUGGESTED_WORDS result
51 virtual std::string const nextMiss();
53 /// give an error message on messy exit
54 virtual lyx::docstring const error();
57 /// read some data. Returns true on an error. Sets err_read
58 /// to true if the data was from stderr.
59 bool select(bool & err_read);
61 /// instream to communicate with ispell
63 /// outstream to communicate with ispell
65 /// errstream for ispell
73 /// buffer for reading
77 lyx::docstring error_;
79 boost::scoped_ptr<lyx::support::ForkedProcess> child_;
81 // vileness below ... please FIXME