summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-11-24 19:11:58 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-11-24 19:11:58 +0000
commitea2aeea3a497fa6183d25981dc5f1e58e0b7f03c (patch)
tree7e0384733108fb8a336925afe42ff3fec72f2373 /src
parent2549a63c0b242e9f0978f239be9ec0ea6b23a1bc (diff)
Filters: generalize colorize_regex in colorize_regex_range
Diffstat (limited to 'src')
-rw-r--r--src/filters.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/filters.cc b/src/filters.cc
index 1b75fbe7..a4c03d73 100644
--- a/src/filters.cc
+++ b/src/filters.cc
@@ -9,12 +9,16 @@
namespace Kakoune
{
-void colorize_regex(DisplayBuffer& display_buffer,
- const boost::regex& ex,
- Color fg_color, Color bg_color = Color::Default)
+void colorize_regex_range(DisplayBuffer& display_buffer,
+ const BufferIterator& range_begin,
+ const BufferIterator& range_end,
+ const boost::regex& ex,
+ Color fg_color, Color bg_color = Color::Default)
{
- BufferIterator display_begin = display_buffer.begin()->begin();
- BufferIterator display_end = display_buffer.back().end();
+ BufferIterator display_begin = std::max(range_begin,
+ display_buffer.front().begin());
+ BufferIterator display_end = std::min(range_end,
+ display_buffer.back().end());
boost::regex_iterator<BufferIterator> re_it(display_begin, display_end,
ex, boost::match_nosubs);
@@ -48,6 +52,14 @@ void colorize_regex(DisplayBuffer& display_buffer,
}
}
+void colorize_regex(DisplayBuffer& display_buffer,
+ const boost::regex& ex,
+ Color fg_color, Color bg_color = Color::Default)
+{
+ colorize_regex_range(display_buffer, display_buffer.front().begin(),
+ display_buffer.back().end(), ex, fg_color, bg_color);
+}
+
Color parse_color(const std::string& color)
{
if (color == "default") return Color::Default;