diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-02-01 23:30:58 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-02-01 23:30:58 +0000 |
| commit | 09fc14be4b7169e3d5fbae3995c3ee9c6db03150 (patch) | |
| tree | 4138967182f32c52b35dd6bcee55d0fc70da5ea4 /src | |
| parent | 4d6b8a70e1ea140871455d31172b4e35c3caaa99 (diff) | |
Small refactor in highlighters.cc
Diffstat (limited to 'src')
| -rw-r--r-- | src/highlighters.cc | 26 |
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(); |
