Buffer takes a vector of lines as initial content
This commit is contained in:
parent
53be5c87d2
commit
c32a7b9b74
|
@ -12,8 +12,7 @@
|
|||
namespace Kakoune
|
||||
{
|
||||
|
||||
Buffer::Buffer(String name, Flags flags,
|
||||
String initial_content)
|
||||
Buffer::Buffer(String name, Flags flags, std::vector<String> lines)
|
||||
: m_name(std::move(name)), m_flags(flags | Flags::NoUndo),
|
||||
m_history(), m_history_cursor(m_history.begin()),
|
||||
m_last_save_undo_index(0),
|
||||
|
@ -22,9 +21,15 @@ Buffer::Buffer(String name, Flags flags,
|
|||
m_options(GlobalOptions::instance())
|
||||
{
|
||||
BufferManager::instance().register_buffer(*this);
|
||||
if (initial_content.empty() or initial_content.back() != '\n')
|
||||
initial_content += '\n';
|
||||
do_insert(begin(), std::move(initial_content));
|
||||
|
||||
ByteCount pos = 0;
|
||||
m_lines.reserve(lines.size());
|
||||
for (auto& line : lines)
|
||||
{
|
||||
assert(not line.empty() and line.back() == '\n');
|
||||
m_lines.emplace_back(Line{ pos, std::move(line) });
|
||||
pos += m_lines.back().length();
|
||||
}
|
||||
|
||||
Editor editor_for_hooks(*this);
|
||||
Context context(editor_for_hooks);
|
||||
|
|
|
@ -101,7 +101,7 @@ public:
|
|||
NoUndo = 8,
|
||||
};
|
||||
|
||||
Buffer(String name, Flags flags, String initial_content = "\n");
|
||||
Buffer(String name, Flags flags, std::vector<String> lines = { "\n" });
|
||||
Buffer(const Buffer&) = delete;
|
||||
Buffer& operator= (const Buffer&) = delete;
|
||||
~Buffer();
|
||||
|
|
|
@ -7,7 +7,7 @@ using namespace Kakoune;
|
|||
|
||||
void test_buffer()
|
||||
{
|
||||
Buffer buffer("test", Buffer::Flags::None, "allo ?\nmais que fais la police\n hein ?\n youpi\n");
|
||||
Buffer buffer("test", Buffer::Flags::None, { "allo ?\n", "mais que fais la police\n", " hein ?\n", " youpi\n" });
|
||||
assert(buffer.line_count() == 4);
|
||||
|
||||
BufferIterator i = buffer.begin();
|
||||
|
@ -40,7 +40,7 @@ void test_buffer()
|
|||
|
||||
void test_editor()
|
||||
{
|
||||
Buffer buffer("test", Buffer::Flags::None, "test\n\nyoupi\n");
|
||||
Buffer buffer("test", Buffer::Flags::None, { "test\n", "\n", "youpi\n" });
|
||||
Editor editor(buffer);
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
@ -56,7 +56,7 @@ void test_editor()
|
|||
|
||||
void test_incremental_inserter()
|
||||
{
|
||||
Buffer buffer("test", Buffer::Flags::None, "test\n\nyoupi\nmatin\n");
|
||||
Buffer buffer("test", Buffer::Flags::None, { "test\n", "\n", "youpi\n", "matin\n" });
|
||||
Editor editor(buffer);
|
||||
|
||||
editor.select(buffer.begin());
|
||||
|
|
Loading…
Reference in New Issue
Block a user