Small refactor in highlighters.cc

This commit is contained in:
Maxime Coste 2015-02-01 23:30:58 +00:00
parent 4d6b8a70e1
commit 09fc14be4b

View File

@ -745,26 +745,24 @@ void update_matches(const Buffer& buffer, ArrayView<LineModification> modifs,
[](const LineCount& l, const LineModification& c) [](const LineCount& l, const LineModification& c)
{ return l < c.old_line; }); { return l < c.old_line; });
bool erase = false;
if (modif_it != modifs.begin()) if (modif_it != modifs.begin())
{ {
auto& prev = *(modif_it-1); auto& prev = *(modif_it-1);
erase = it->line < prev.old_line + prev.num_removed; if (it->line < prev.old_line + prev.num_removed)
continue; // match removed
it->line += prev.diff(); it->line += prev.diff();
} }
if (not erase) it->timestamp = buf_timestamp;
{ kak_assert(buffer.is_valid(it->begin_coord()) or
it->timestamp = buf_timestamp; buffer[it->line].length() == it->begin);
kak_assert(buffer.is_valid(it->begin_coord()) or kak_assert(buffer.is_valid(it->end_coord()) or
buffer[it->line].length() == it->begin); buffer[it->line].length() == it->end);
kak_assert(buffer.is_valid(it->end_coord()) or
buffer[it->line].length() == it->end);
if (ins_pos != it) if (ins_pos != it)
*ins_pos = std::move(*it); *ins_pos = std::move(*it);
++ins_pos; ++ins_pos;
}
} }
matches.erase(ins_pos, matches.end()); matches.erase(ins_pos, matches.end());
size_t pivot = matches.size(); size_t pivot = matches.size();