Use SelectionList::insert in InputModes::Insert
This commit is contained in:
parent
b2621ca140
commit
51eae8026b
|
@ -759,26 +759,13 @@ private:
|
|||
|
||||
void insert(memoryview<String> strings)
|
||||
{
|
||||
auto& buffer = context().buffer();
|
||||
auto& selections = context().selections();
|
||||
for (size_t i = 0; i < selections.size(); ++i)
|
||||
{
|
||||
size_t index = selections.size() - 1 - i;
|
||||
const String& str = strings[std::min(index, strings.size()-1)];
|
||||
buffer.insert(buffer.iterator_at(selections[index].cursor()),
|
||||
str);
|
||||
}
|
||||
selections.update();
|
||||
context().selections().insert(strings, InsertMode::InsertCursor);
|
||||
}
|
||||
|
||||
void insert(Codepoint key)
|
||||
{
|
||||
auto str = codepoint_to_str(key);
|
||||
auto& buffer = context().buffer();
|
||||
auto& selections = context().selections();
|
||||
for (auto& sel : reversed(selections))
|
||||
buffer.insert(buffer.iterator_at(sel.cursor()), str);
|
||||
selections.update();
|
||||
context().selections().insert(str, InsertMode::InsertCursor);
|
||||
context().hooks().run_hook("InsertChar", str, context());
|
||||
}
|
||||
|
||||
|
@ -828,6 +815,7 @@ private:
|
|||
cursor = anchor;
|
||||
break;
|
||||
case InsertMode::InsertAtNextLineBegin:
|
||||
case InsertMode::InsertCursor:
|
||||
kak_assert(false); // not implemented
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -239,6 +239,8 @@ BufferIterator prepare_insert(Buffer& buffer, const Selection& sel, InsertMode m
|
|||
{
|
||||
case InsertMode::Insert:
|
||||
return buffer.iterator_at(sel.min());
|
||||
case InsertMode::InsertCursor:
|
||||
return buffer.iterator_at(sel.cursor());
|
||||
case InsertMode::Replace:
|
||||
return erase(buffer, sel);
|
||||
case InsertMode::Append:
|
||||
|
@ -295,7 +297,6 @@ void SelectionList::insert(memoryview<String> strings, InsertMode mode)
|
|||
}
|
||||
}
|
||||
update();
|
||||
avoid_eol();
|
||||
check_invariant();
|
||||
m_buffer->check_invariant();
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ static bool compare_selections(const Selection& lhs, const Selection& rhs)
|
|||
enum class InsertMode : unsigned
|
||||
{
|
||||
Insert,
|
||||
InsertCursor,
|
||||
Append,
|
||||
Replace,
|
||||
InsertAtLineBegin,
|
||||
|
|
Loading…
Reference in New Issue
Block a user