add Buffer::add_cursor()
This commit is contained in:
parent
924d005020
commit
85dbf75b11
@ -105,6 +105,12 @@ public:
|
|||||||
m_iterators.push_back(iterator);
|
m_iterators.push_back(iterator);
|
||||||
return iterator;
|
return iterator;
|
||||||
}
|
}
|
||||||
|
std::shared_ptr<Iterator> add_cursor()
|
||||||
|
{
|
||||||
|
auto iterator = add_iterator();
|
||||||
|
m_cursors.push_back(iterator);
|
||||||
|
return iterator;
|
||||||
|
}
|
||||||
auto get_string() { return m_gap_buffer->get_string(); }
|
auto get_string() { return m_gap_buffer->get_string(); }
|
||||||
size_t size() const { return m_gap_buffer->size(); }
|
size_t size() const { return m_gap_buffer->size(); }
|
||||||
uint8_t * address(size_t offset) const { return m_gap_buffer->address(offset); }
|
uint8_t * address(size_t offset) const { return m_gap_buffer->address(offset); }
|
||||||
@ -130,6 +136,7 @@ protected:
|
|||||||
uint8_t m_tabstop;
|
uint8_t m_tabstop;
|
||||||
bool m_insert_mode;
|
bool m_insert_mode;
|
||||||
std::list<std::shared_ptr<Iterator>> m_iterators;
|
std::list<std::shared_ptr<Iterator>> m_iterators;
|
||||||
|
std::list<std::shared_ptr<Iterator>> m_cursors;
|
||||||
std::shared_ptr<Iterator> m_eof_iterator;
|
std::shared_ptr<Iterator> m_eof_iterator;
|
||||||
std::string m_filename;
|
std::string m_filename;
|
||||||
std::shared_ptr<ChangeOperation> m_current_change_operation;
|
std::shared_ptr<ChangeOperation> m_current_change_operation;
|
||||||
|
@ -5,7 +5,7 @@ BufferPane::BufferPane(Window * window, std::shared_ptr<Buffer> buffer)
|
|||||||
{
|
{
|
||||||
m_cursor_screen_row = 0;
|
m_cursor_screen_row = 0;
|
||||||
m_scroll_offset = 5;
|
m_scroll_offset = 5;
|
||||||
m_iterator = buffer->add_iterator();
|
m_iterator = buffer->add_cursor();
|
||||||
m_target_column = 0;
|
m_target_column = 0;
|
||||||
m_cursor_virtual_column = 0;
|
m_cursor_virtual_column = 0;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ TEST(BufferTest, writes_an_empty_file_for_an_empty_buffer)
|
|||||||
TEST(BufferTest, allows_navigating_using_iterators)
|
TEST(BufferTest, allows_navigating_using_iterators)
|
||||||
{
|
{
|
||||||
Buffer b("test/files/line_endings/lf_format.txt");
|
Buffer b("test/files/line_endings/lf_format.txt");
|
||||||
auto iterator = b.add_iterator();
|
auto iterator = b.add_cursor();
|
||||||
|
|
||||||
EXPECT_EQ(0u, iterator->line());
|
EXPECT_EQ(0u, iterator->line());
|
||||||
ASSERT_EQ((uint32_t)'H', **iterator);
|
ASSERT_EQ((uint32_t)'H', **iterator);
|
||||||
@ -71,7 +71,7 @@ TEST(BufferTest, allows_navigating_using_iterators)
|
|||||||
TEST(BufferTest, allows_navigating_using_iterators2)
|
TEST(BufferTest, allows_navigating_using_iterators2)
|
||||||
{
|
{
|
||||||
Buffer b("test/files/blank_lines.txt");
|
Buffer b("test/files/blank_lines.txt");
|
||||||
auto iterator = b.add_iterator();
|
auto iterator = b.add_cursor();
|
||||||
|
|
||||||
EXPECT_EQ(0u, iterator->line());
|
EXPECT_EQ(0u, iterator->line());
|
||||||
EXPECT_EQ((uint32_t)'a', **iterator);
|
EXPECT_EQ((uint32_t)'a', **iterator);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user