summaryrefslogtreecommitdiff
path: root/src/editor.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-09-07 14:29:29 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-09-07 14:29:29 +0200
commit287628ec19d42f2ff2323972c2e1e4975b3e146f (patch)
treedd7fc2fce688839e1815aa20917fd0ed70353ac6 /src/editor.cc
parent1e18dcba0f0e63792ccf64e167e039f2a4733815 (diff)
Editor::{select,move_cursor} takes a enum SelectMode parameter instead of a boolean
Diffstat (limited to 'src/editor.cc')
-rw-r--r--src/editor.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/editor.cc b/src/editor.cc
index 8de99e02..8775a013 100644
--- a/src/editor.cc
+++ b/src/editor.cc
@@ -111,13 +111,14 @@ void Editor::pop_selections()
throw runtime_error("no more selections on stack");
}
-void Editor::move_selections(const BufferCoord& offset, bool append)
+void Editor::move_selections(const BufferCoord& offset, SelectMode mode)
{
+ assert(mode == SelectMode::Replace or mode == SelectMode::Extend);
for (auto& sel : m_selections.back())
{
BufferCoord pos = m_buffer.line_and_column_at(sel.last());
BufferIterator last = m_buffer.iterator_at(pos + offset, true);
- sel = Selection(append ? sel.first() : last, last);
+ sel = Selection(mode == SelectMode::Extend ? sel.first() : last, last);
}
}
@@ -160,7 +161,7 @@ void Editor::select(const BufferIterator& iterator)
m_selections.back().push_back(Selection(iterator, iterator));
}
-void Editor::select(const Selector& selector, bool append)
+void Editor::select(const Selector& selector, SelectMode mode)
{
check_invariant();
@@ -170,7 +171,7 @@ void Editor::select(const Selector& selector, bool append)
for (auto& sel : m_selections.back())
{
SelectionAndCaptures res = selector(sel);
- if (append)
+ if (mode == SelectMode::Extend)
sel.merge_with(res.selection);
else
sel = std::move(res.selection);