summaryrefslogtreecommitdiff
path: root/src/editor.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-08-10 19:12:43 +0200
committerMaxime Coste <frrrwww@gmail.com>2012-08-10 19:12:43 +0200
commit759319ca448b054f28e6b7348a31646cb71afa98 (patch)
tree078a0ae6d75e9fcf6d404d9fc0703ba9ff2a9036 /src/editor.cc
parent44621bff1158300fc61486024b6c9ddad2508e29 (diff)
Buffer: move back Modification as an implementation detail
* Filters now only works on insertion and take directly the iterator and content * use Buffer::insert and Buffer::erase to modify a buffer
Diffstat (limited to 'src/editor.cc')
-rw-r--r--src/editor.cc26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/editor.cc b/src/editor.cc
index 4b6ee8bc..817ce8e7 100644
--- a/src/editor.cc
+++ b/src/editor.cc
@@ -22,7 +22,7 @@ void Editor::erase()
{
scoped_edition edition(*this);
for (auto& sel : selections())
- m_buffer.modify(Modification::make_erase(sel.begin(), sel.end()));
+ m_buffer.erase(sel.begin(), sel.end());
}
template<bool append>
@@ -32,7 +32,7 @@ static void do_insert(Editor& editor, const String& string)
for (auto& sel : editor.selections())
{
BufferIterator pos = append ? sel.end() : sel.begin();
- editor.buffer().modify(Modification::make_insert(pos, string));
+ editor.buffer().insert(pos, string);
}
}
@@ -48,7 +48,7 @@ static void do_insert(Editor& editor, const memoryview<String>& strings)
BufferIterator pos = append ? editor.selections()[i].end()
: editor.selections()[i].begin();
size_t index = std::min(i, strings.size()-1);
- editor.buffer().modify(Modification::make_insert(pos, strings[index]));
+ editor.buffer().insert(pos, strings[index]);
}
}
@@ -348,9 +348,9 @@ IncrementalInserter::IncrementalInserter(Editor& editor, Mode mode)
}
sel = Selection(first, last);
- if (mode == Mode::OpenLineBelow or mode == Mode::OpenLineAbove)
- apply(Modification::make_insert(sel.last(), "\n"));
}
+ if (mode == Mode::OpenLineBelow or mode == Mode::OpenLineAbove)
+ insert("\n");
}
IncrementalInserter::~IncrementalInserter()
@@ -362,16 +362,16 @@ IncrementalInserter::~IncrementalInserter()
m_editor.on_incremental_insertion_end();
}
-void IncrementalInserter::apply(Modification&& modification) const
-{
- m_editor.filters()(m_editor.buffer(), modification);
- m_editor.buffer().modify(std::move(modification));
-}
-
void IncrementalInserter::insert(const String& string)
{
+ Buffer& buffer = m_editor.buffer();
for (auto& sel : m_editor.selections())
- apply(Modification::make_insert(sel.last(), string));
+ {
+ BufferIterator position = sel.last();
+ String content = string;
+ m_editor.filters()(buffer, position, content);
+ m_editor.buffer().insert(position, content);
+ }
}
void IncrementalInserter::insert(const memoryview<String>& strings)
@@ -384,7 +384,7 @@ void IncrementalInserter::erase()
for (auto& sel : m_editor.m_selections.back())
{
BufferIterator pos = sel.last();
- apply(Modification::make_erase(pos-1, pos));
+ m_editor.buffer().erase(pos-1, pos);
}
}