Add x function and other bug fixes.

This commit is contained in:
2026-08-31 12:56:14 +01:00
parent c0f9c6a234
commit 569b69263a
11 changed files with 328 additions and 43 deletions
+1
View File
@@ -24,6 +24,7 @@ struct ClipBuffer : Buffer {
void join(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void remove(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void append(BEd &ctx, vase::Shard *text, uint64_t line) override;
void replace(BEd &ctx, vase::Shard *text, uint64_t start_line, uint64_t end_line) override;
void print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void number_print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void list_print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
+1
View File
@@ -43,6 +43,7 @@ struct Buffer {
virtual void join(BEd &ctx, uint64_t start_line, uint64_t end_line) = 0;
virtual void remove(BEd &ctx, uint64_t start_line, uint64_t end_line) = 0;
virtual void append(BEd &ctx, vase::Shard *text, uint64_t line) = 0;
virtual void replace(BEd &ctx, vase::Shard *text, uint64_t start_line, uint64_t end_line) = 0;
virtual void print(BEd &ctx, uint64_t start_line, uint64_t end_line) = 0;
virtual void number_print(BEd &ctx, uint64_t start_line, uint64_t end_line) = 0;
virtual void list_print(BEd &ctx, uint64_t start_line, uint64_t end_line) = 0;
+1
View File
@@ -28,6 +28,7 @@ struct GenericBuffer : Buffer {
void join(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void remove(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void append(BEd &ctx, vase::Shard *text, uint64_t line) override;
void replace(BEd &ctx, vase::Shard *text, uint64_t start_line, uint64_t end_line) override;
void print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void number_print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
void list_print(BEd &ctx, uint64_t start_line, uint64_t end_line) override;
+1 -1
View File
@@ -22,7 +22,7 @@ struct MarksEngine {
continue;
if (marks[i].number == UINT64_MAX)
continue;
if (marks[i].number >= start)
if (marks[i].number > start)
marks[i].number += count;
}
}
+1
View File
@@ -48,6 +48,7 @@ std::string to_string(Shard *root, Range range);
Shard *insert(AppendStorage *ap, Shard *root, Shard *text, uint64_t line);
Shard *erase(Shard *root, uint64_t start, uint64_t end);
Shard *replace(Shard *root, Shard *text, uint64_t start, uint64_t end);
Shard *join(Shard *root, uint64_t start, uint64_t end);
Shard *copy(Shard *root, uint64_t start, uint64_t end);
void write_file(std::filesystem::path path, Shard *text);