BufferView: cursor_move() takes a character argument

This commit is contained in:
Josh Holtrop 2017-11-15 20:32:01 -05:00
parent 739edfd6f7
commit 2d559db7d0
6 changed files with 91 additions and 91 deletions

View File

@ -101,7 +101,7 @@ void BufferView::update()
}
}
bool BufferView::cursor_move(CursorMovement which, bool allow_eol)
bool BufferView::cursor_move(CursorMovement which, uint32_t c, bool allow_eol)
{
bool moved = false;

View File

@ -76,7 +76,7 @@ public:
{
return BufferLineWalker(m_buffer, start_of_line, m_width, m_character_width_determiner);
}
bool cursor_move(CursorMovement which, bool allow_eol);
bool cursor_move(CursorMovement which, uint32_t c, bool allow_eol);
int cursor_screen_row() const { return m_cursor_screen_row; }
int cursor_screen_column() const { return m_cursor_screen_column; }
int cursor_virtual_column() const { return m_cursor_virtual_column; }

View File

@ -356,9 +356,9 @@ size_t BufferPane::display_column() const
return m_buffer_view->cursor_virtual_column() + 1u;
}
void BufferPane::cursor_move(BufferPane::CursorMovement which)
void BufferPane::cursor_move(BufferPane::CursorMovement which, uint32_t c)
{
bool moved = m_buffer_view->cursor_move(which, insert_mode());
bool moved = m_buffer_view->cursor_move(which, c, insert_mode());
if (moved)
{
m_buffer_view->update();
@ -396,7 +396,7 @@ void BufferPane::enter_insert_mode(Window::EnterInsertModeMode which)
m_buffer->enter_insert_mode();
m_buffer->insert_code_point(*m_iterator, '\n');
m_buffer->exit_insert_mode();
cursor_move(CursorMovement::UP);
cursor_move(CursorMovement::UP, 0u);
enter_insert_mode(Window::EnterInsertModeMode::START_OF_CHAR);
break;
case Window::EnterInsertModeMode::NEW_LINE_AFTER:

View File

@ -31,7 +31,7 @@ public:
BufferPane(Window * window, std::shared_ptr<Buffer> buffer);
void resize(int width, int height) override;
void draw();
void cursor_move(CursorMovement which);
void cursor_move(CursorMovement which, uint32_t c);
void enter_insert_mode(Window::EnterInsertModeMode which);
void insert_code_point(uint32_t code_point);
void exit_insert_mode();

View File

@ -255,22 +255,22 @@ void Window::handle_keypress(uint32_t keyval)
switch (ctrl_keyval)
{
case JES_KEY_HOME:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL, 0u);
break;
case JES_KEY_END:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL, 0u);
break;
case JES_KEY_RIGHT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT, 0u);
break;
case JES_KEY_LEFT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT, 0u);
break;
case JES_KEY_DOWN:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN, 0u);
break;
case JES_KEY_UP:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP, 0u);
break;
case JES_KEY_PAGE_UP:
m_focused_buffer_pane->scroll_window_up(ScrollMode::WHOLE_SCREEN);
@ -381,28 +381,28 @@ void Window::execute_command(const Command & command)
case Command::CHANGE_CHAR:
break;
case Command::GO_TO_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::FIRST_LINE);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::FIRST_LINE, 0u);
break;
case Command::GO_TO_LAST_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LAST_LINE);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LAST_LINE, 0u);
break;
case Command::GO_LEFT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT, 0u);
break;
case Command::GO_DOWN:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN, 0u);
break;
case Command::GO_UP:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP, 0u);
break;
case Command::GO_RIGHT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT, 0u);
break;
case Command::GO_START_OF_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL, 0u);
break;
case Command::GO_END_OF_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL, 0u);
break;
case Command::NEXT:
break;

View File

@ -164,46 +164,46 @@ TEST(BufferViewTest, adjusts_cursor_row_as_cursor_moves)
bv.resize(5, 5);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 1
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 2
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 2
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 3
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 3
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 4
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 4
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 5
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 5
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 6
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 6
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 7
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 7
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 6
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 6
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 5
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 5
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 4
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 4
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 3
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 3
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 2
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 2
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 1
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 1
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 0
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 0
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
}
@ -217,46 +217,46 @@ TEST(BufferViewTest, adjusts_cursor_row_as_cursor_moves_with_scroll_offset_1)
bv.set_scroll_offset(1);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 1
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 2
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 2
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 3
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 3
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 4
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 4
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 5
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 5
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 6
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 6
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::DOWN, false); // to 7
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false); // to 7
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 6
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 6
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 5
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 5
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 4
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 4
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 3
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 3
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 2
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 2
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 1
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::UP, false); // to 0
bv.cursor_move(BufferView::CursorMovement::UP, 0u, false); // to 0
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
}
@ -269,7 +269,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
bv.resize(4, 10);
for (int i = 0; i < 9; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
}
EXPECT_EQ(9, bv.cursor_screen_row());
@ -278,7 +278,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
EXPECT_EQ(C('9'), **iterator);
for (int i = 0; i < 3; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(1 + i, bv.cursor_screen_column());
@ -286,7 +286,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
}
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(i, bv.cursor_screen_column());
@ -294,7 +294,7 @@ TEST(BufferViewTest, moves_view_down_while_traversing_a_wrapped_line_right)
}
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(i, bv.cursor_screen_column());
@ -311,14 +311,14 @@ TEST(BufferViewTest, moves_view_down_while_jumping_to_the_end_of_a_wrapped_line)
bv.resize(4, 10);
for (int i = 0; i < 9; i++)
{
bv.cursor_move(BufferView::CursorMovement::DOWN, false);
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false);
bv.update();
}
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_EQ(C('9'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::EOL, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::EOL, 0u, false));
bv.update();
EXPECT_EQ(9, bv.cursor_screen_row());
EXPECT_EQ(3, bv.cursor_screen_column());
@ -334,7 +334,7 @@ TEST(BufferViewTest, moves_view_up_while_traversing_a_wrapped_line_left)
bv.resize(2, 3);
for (int i = 0; i < 4; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
}
EXPECT_EQ(2, bv.cursor_screen_row());
@ -351,25 +351,25 @@ TEST(BufferViewTest, moves_view_up_while_traversing_a_wrapped_line_left)
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(3, bv.cursor_virtual_column());
EXPECT_EQ(C('c'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(2, bv.cursor_virtual_column());
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(1, bv.cursor_virtual_column());
EXPECT_EQ(C('a'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_EQ(C('2'), **iterator);
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
@ -385,7 +385,7 @@ TEST(BufferViewTest, moves_view_up_while_jumping_to_start_of_a_wrapped_line)
bv.resize(2, 3);
for (int i = 0; i < 4; i++)
{
bv.cursor_move(BufferView::CursorMovement::DOWN, false);
bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false);
bv.update();
}
EXPECT_EQ(2, bv.cursor_screen_row());
@ -402,7 +402,7 @@ TEST(BufferViewTest, moves_view_up_while_jumping_to_start_of_a_wrapped_line)
EXPECT_EQ(1, bv.cursor_screen_column());
EXPECT_EQ(3, bv.cursor_virtual_column());
EXPECT_EQ(C('c'), **iterator);
bv.cursor_move(BufferView::CursorMovement::SOL, false);
bv.cursor_move(BufferView::CursorMovement::SOL, 0u, false);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
@ -416,20 +416,20 @@ TEST(BufferViewTest, warps_view_when_jumping_to_beginning_and_end_of_buffer)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, 0u, false));
bv.update();
EXPECT_EQ(12, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::LAST_LINE, 0u, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, 0u, false));
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::FIRST_LINE, 0u, false));
}
TEST(BufferViewTest, sets_target_column_to_eol_when_jumping_to_SOL_and_EOL)
@ -438,18 +438,18 @@ TEST(BufferViewTest, sets_target_column_to_eol_when_jumping_to_SOL_and_EOL)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
bv.cursor_move(BufferView::CursorMovement::EOL, false);
bv.cursor_move(BufferView::CursorMovement::EOL, 0u, false);
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, 0u, false));
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SOL, false);
bv.cursor_move(BufferView::CursorMovement::SOL, 0u, false);
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
EXPECT_EQ(C('1'), **iterator);
EXPECT_EQ(1, bv.cursor_screen_row());
}
@ -460,24 +460,24 @@ TEST(BufferViewTest, sets_target_column_when_traversing_left_and_right)
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::DOWN, 0u, false));
bv.update();
EXPECT_EQ(2, LineNumber(iterator));
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::LEFT, 0u, false));
bv.update();
EXPECT_EQ(2, LineNumber(iterator));
EXPECT_EQ(C('a'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::UP, 0u, false));
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_EQ(C('a'), **iterator);
@ -491,30 +491,30 @@ TEST(BufferViewTest, moves_cursor_by_screen_row)
bv.resize(4, 4);
for (int i = 0; i < 6; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(1 + i, LineNumber(iterator));
}
EXPECT_EQ(C('6'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(6, LineNumber(iterator));
EXPECT_EQ(C('d'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false));
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
EXPECT_EQ(C('7'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('b'), **iterator);
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(C('5'), **iterator);
}
@ -525,15 +525,15 @@ TEST(BufferViewTest, cursor_move_screen_row_up_and_down_returns_false_at_top_and
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(4, 4);
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, 0u, false));
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
for (int i = 0; i < 16; i++)
{
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
bv.update();
}
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false));
}
TEST(BufferViewTest, scrolls_the_view_up_and_down)
@ -623,7 +623,7 @@ TEST(BufferViewTest, scrolls_the_view_up_and_down_with_wrapped_lines)
EXPECT_EQ(10, LineNumber(iterator));
EXPECT_EQ(C('1'), **iterator);
bv.cursor_move(BufferView::CursorMovement::RIGHT, false);
bv.cursor_move(BufferView::CursorMovement::RIGHT, 0u, false);
bv.update();
bv.scroll_view_up(3, false);
bv.update();
@ -787,15 +787,15 @@ TEST(BufferViewTest, moving_cursor_screen_row_down_jumps_past_wrapped_tab)
bv.update();
EXPECT_EQ(C('0'), **iterator);
EXPECT_EQ(0, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('1'), **iterator);
EXPECT_EQ(1, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('d'), **iterator);
EXPECT_EQ(2, bv.cursor_screen_row());
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false);
bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, 0u, false);
bv.update();
EXPECT_EQ(C('f'), **iterator);
EXPECT_EQ(3, bv.cursor_screen_row());