feat(buffers): save/restore full editor state on buffer switch
This commit is contained in:
parent
b45b5910ee
commit
e6e0301a78
3 changed files with 51 additions and 17 deletions
|
@ -65,6 +65,7 @@ pub fn delete_buffer(self: *Self, file_path: []const u8) bool {
|
|||
pub fn retire(_: *Self, buffer: *Buffer, meta: ?[]const u8) void {
|
||||
if (meta) |buf| buffer.set_meta(buf) catch {};
|
||||
tp.trace(tp.channel.debug, .{ "buffer", "retire", buffer.file_path, "hidden", buffer.hidden, "ephemeral", buffer.ephemeral });
|
||||
if (meta) |buf| tp.trace(tp.channel.debug, tp.message{ .buf = buf });
|
||||
}
|
||||
|
||||
pub fn close_buffer(self: *Self, buffer: *Buffer) void {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
const cbor = @import("cbor");
|
||||
|
||||
const Buffer = @import("Buffer.zig");
|
||||
const Cursor = @import("Cursor.zig");
|
||||
|
||||
|
@ -44,13 +46,19 @@ pub fn normalize(self: *Self) void {
|
|||
}
|
||||
|
||||
pub fn write(self: *const Self, writer: Buffer.MetaWriter) !void {
|
||||
try cbor.writeArrayHeader(writer, 2);
|
||||
try self.begin.write(writer);
|
||||
try self.end.write(writer);
|
||||
}
|
||||
|
||||
pub fn extract(self: *Self, iter: *[]const u8) !bool {
|
||||
if (!try self.begin.extract(iter)) return false;
|
||||
return self.end.extract(iter);
|
||||
var iter2 = iter.*;
|
||||
const len = cbor.decodeArrayHeader(&iter2) catch return false;
|
||||
if (len != 2) return false;
|
||||
if (!try self.begin.extract(&iter2)) return false;
|
||||
if (!try self.end.extract(&iter2)) return false;
|
||||
iter.* = iter2;
|
||||
return true;
|
||||
}
|
||||
|
||||
pub fn nudge_insert(self: *Self, nudge: Self) void {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue