summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-02-01 23:30:58 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-02-01 23:30:58 +0000
commit09fc14be4b7169e3d5fbae3995c3ee9c6db03150 (patch)
tree4138967182f32c52b35dd6bcee55d0fc70da5ea4 /src
parent4d6b8a70e1ea140871455d31172b4e35c3caaa99 (diff)
Small refactor in highlighters.cc
Diffstat (limited to 'src')
-rw-r--r--src/highlighters.cc26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/highlighters.cc b/src/highlighters.cc
index 0a3733c6..627bc20b 100644
--- a/src/highlighters.cc
+++ b/src/highlighters.cc
@@ -745,26 +745,24 @@ void update_matches(const Buffer& buffer, ArrayView<LineModification> modifs,
[](const LineCount& l, const LineModification& c)
{ return l < c.old_line; });
- bool erase = false;
if (modif_it != modifs.begin())
{
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();
}
- if (not erase)
- {
- it->timestamp = buf_timestamp;
- kak_assert(buffer.is_valid(it->begin_coord()) or
- buffer[it->line].length() == it->begin);
- kak_assert(buffer.is_valid(it->end_coord()) or
- buffer[it->line].length() == it->end);
-
- if (ins_pos != it)
- *ins_pos = std::move(*it);
- ++ins_pos;
- }
+ it->timestamp = buf_timestamp;
+ kak_assert(buffer.is_valid(it->begin_coord()) or
+ buffer[it->line].length() == it->begin);
+ kak_assert(buffer.is_valid(it->end_coord()) or
+ buffer[it->line].length() == it->end);
+
+ if (ins_pos != it)
+ *ins_pos = std::move(*it);
+ ++ins_pos;
}
matches.erase(ins_pos, matches.end());
size_t pivot = matches.size();