summaryrefslogtreecommitdiff
path: root/src/display_buffer.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-07-23 13:58:23 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-07-23 13:58:23 +0100
commit2946504a17a2eec949faf85c3cf148d5fcb64bae (patch)
treed39a8560931d12872f5bef9b6a57c4c60f82ed8e /src/display_buffer.cc
parent654904f0460cc9d7af086d034af6037844f01f42 (diff)
Improve column highlighter to cooperate better with other highlighters
Fixes #268
Diffstat (limited to 'src/display_buffer.cc')
-rw-r--r--src/display_buffer.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/display_buffer.cc b/src/display_buffer.cc
index 55772b6b..8cda0c47 100644
--- a/src/display_buffer.cc
+++ b/src/display_buffer.cc
@@ -94,6 +94,19 @@ DisplayLine::iterator DisplayLine::split(iterator it, ByteCoord pos)
return m_atoms.insert(it, std::move(atom));
}
+DisplayLine::iterator DisplayLine::split(iterator it, CharCount pos)
+{
+ kak_assert(it->type() == DisplayAtom::Text);
+ kak_assert(pos > 0);
+ kak_assert(pos < it->length());
+
+ DisplayAtom atom(it->m_text.substr(0, pos).str());
+ it->m_text = it->m_text.substr(pos).str();
+ atom.check_invariant();
+ it->check_invariant();
+ return m_atoms.insert(it, std::move(atom));
+}
+
DisplayLine::iterator DisplayLine::insert(iterator it, DisplayAtom atom)
{
if (atom.has_buffer_range())