Do not forget last word of paragraph in completion

With the old code, the last word of a paragraph would not be added in
the completion list. The key difference is to pass `from' instead of `pos'
to FontList::fontiterator.

Slight cleanup of the code.
This commit is contained in:
Jean-Marc Lasgouttes 2014-05-16 15:17:10 +02:00
parent 15e1f5eb39
commit ee7c4db72a

View File

@ -3840,20 +3840,19 @@ void Paragraph::locateWord(pos_type & from, pos_type & to,
void Paragraph::collectWords()
{
pos_type n = size();
for (pos_type pos = 0; pos < n; ++pos) {
for (pos_type pos = 0; pos < size(); ++pos) {
if (isWordSeparator(pos))
continue;
pos_type from = pos;
locateWord(from, pos, WHOLE_WORD);
if ((pos - from) >= (int)lyxrc.completion_minlength) {
docstring word = asString(from, pos, AS_STR_NONE);
FontList::const_iterator cit = d->fontlist_.fontIterator(pos);
if (cit == d->fontlist_.end())
return;
Language const * lang = cit->font().language();
d->words_[lang->lang()].insert(word);
}
if (pos < from + lyxrc.completion_minlength)
continue;
FontList::const_iterator cit = d->fontlist_.fontIterator(from);
if (cit == d->fontlist_.end())
return;
Language const * lang = cit->font().language();
docstring const word = asString(from, pos, AS_STR_NONE);
d->words_[lang->lang()].insert(word);
}
}