#include "output_xhtml.h"
#include "output_docbook.h"
#include "ParagraphParameters.h"
+#include "Session.h"
#include "SpellChecker.h"
#include "texstream.h"
#include "TexRow.h"
/// \return the number of characters written.
int latexSurrogatePair(BufferParams const &, otexstream & os,
char_type c, char_type next,
- OutputParams const &);
+ OutputParams const &) const;
/// Output a space in appropriate formatting (or a surrogate pair
/// if the next character is a combining character).
pos_type i,
unsigned int & column,
Font const & font,
- Layout const & style);
+ Layout const & style) const;
/// This could go to ParagraphParameters if we want to.
int startTeXParParams(BufferParams const &, otexstream &,
unsigned int & column,
bool const fontswitch_inset,
bool const closeLanguage,
- bool const lang_switched_at_inset);
+ bool const lang_switched_at_inset) const;
///
void latexSpecialChar(
Layout const & style,
pos_type & i,
pos_type end_pos,
- unsigned int & column);
+ unsigned int & column) const;
///
bool latexSpecialT1(
return speller_change_number > speller_state_.currentChangeNumber();
}
- bool ignoreWord(docstring const & word) const ;
+ bool ignoreWord(docstring const & word) const;
void setMisspelled(pos_type from, pos_type to, SpellChecker::Result state)
{
// Update list of misspelled positions
speller_state_.increasePosAfterPos(pos);
+
+ // Update bookmarks
+ if (inset_owner_ && inset_owner_->isBufferValid())
+ theSession().bookmarks().adjustPosAfterPos(inset_owner_->buffer().fileName(),
+ id_, pos, 1);
}
d->speller_state_.decreasePosAfterPos(pos);
d->speller_state_.refreshLast(size());
+ // Update bookmarks
+ if (d->inset_owner_ && d->inset_owner_->isBufferValid())
+ theSession().bookmarks().adjustPosAfterPos(d->inset_owner_->buffer().fileName(),
+ d->id_, pos, -1);
+
return true;
}
// Handle combining characters
int Paragraph::Private::latexSurrogatePair(BufferParams const & bparams,
otexstream & os, char_type c, char_type next,
- OutputParams const & runparams)
+ OutputParams const & runparams) const
{
// Writing next here may circumvent a possible font change between
// c and next. Since next is only output if it forms a surrogate pair
pos_type i,
unsigned int & column,
Font const & font,
- Layout const & style)
+ Layout const & style) const
{
if (style.pass_thru || runparams.pass_thru)
return false;
unsigned int & column,
bool const fontswitch_inset,
bool const closeLanguage,
- bool const lang_switched_at_inset)
+ bool const lang_switched_at_inset) const
{
Inset * inset = owner_->getInset(i);
LBUFERR(inset);
Layout const & style,
pos_type & i,
pos_type end_pos,
- unsigned int & column)
+ unsigned int & column) const
{
char_type const c = owner_->getUChar(bparams, runparams, i);
/// should not happen if speller supports range checks
if (!wlen)
continue;
+ WordLangTuple const candidate(word.substr(wstart, wlen), lang);
wstart += first + numskipped;
if (snext < wstart) {
/// mark the range of correct spelling
}
snext = wstart + wlen;
// Check whether the candidate is in the document's local dict
- WordLangTuple const candidate(word.substr(wstart, wlen), lang);
SpellChecker::Result actresult = result;
if (inset_owner_->buffer().params().spellignored(candidate))
- actresult = SpellChecker::WORD_OK;
+ actresult = SpellChecker::DOCUMENT_LEARNED_WORD;
numskipped += countSkips(it, et, snext);
/// mark the range of misspelling
setMisspelled(wstart, snext, actresult);
- if (actresult == SpellChecker::WORD_OK)
+ if (actresult == SpellChecker::DOCUMENT_LEARNED_WORD)
LYXERR(Debug::GUI, "local dictionary word: \"" <<
candidate.word() << "\" [" <<
wstart << ".." << (snext-1) << "]");