diff --git a/src/core/PieceTable.cc b/src/core/PieceTable.cc index fd49fd3..d937fd4 100644 --- a/src/core/PieceTable.cc +++ b/src/core/PieceTable.cc @@ -43,8 +43,9 @@ std::shared_ptr PieceTable::add_cursor() auto cursor = std::make_shared(); cursor->piece = start_piece->next; - cursor->line_number = 1u; + cursor->line_number = 0u; cursor->offset = 0u; + cursor->column = 0u; m_cursors.push_back(cursor); diff --git a/src/core/PieceTable.h b/src/core/PieceTable.h index fc1e2f6..fd83802 100644 --- a/src/core/PieceTable.h +++ b/src/core/PieceTable.h @@ -55,8 +55,11 @@ public: /** Byte offset within the piece. */ uint32_t offset; - /** Line number the cursor is on. */ + /** Line number the cursor is on (0 based). */ uint32_t line_number; + + /** Virtual column (0 based). */ + uint32_t column; }; PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_size);