refactor: add Buffer.last_view field

This commit is contained in:
CJ van den Berg 2026-01-14 20:15:59 +01:00
parent b1cf854ed4
commit 94e6965ad0
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 12 additions and 0 deletions

View file

@ -49,6 +49,7 @@ meta: ?[]const u8 = null,
lsp_version: usize = 1,
vcs_id: ?[]const u8 = null,
vcs_content: ?ArrayList(u8) = null,
last_view: ?usize = null,
undo_head: ?*UndoNode = null,
redo_head: ?*UndoNode = null,
@ -1241,6 +1242,14 @@ pub inline fn get_file_path(self: *const Self) []const u8 {
return self.file_path_buf.items;
}
pub fn set_last_view(self: *Self, last_view: ?usize) void {
self.last_view = last_view;
}
pub fn get_last_view(self: *Self) ?usize {
return self.last_view;
}
pub fn set_vcs_id(self: *Self, vcs_id: []const u8) error{OutOfMemory}!bool {
if (self.vcs_id) |old_id| {
if (std.mem.eql(u8, old_id, vcs_id)) return false;
@ -1687,6 +1696,7 @@ pub fn write_state(self: *const Self, writer: *std.Io.Writer) error{ Stop, OutOf
self.hidden,
self.ephemeral,
self.auto_save,
self.last_view,
dirty,
self.meta,
self.file_type_name,
@ -1712,6 +1722,7 @@ pub fn extract_state(self: *Self, iter: *[]const u8) !void {
cbor.extract(&self.hidden),
cbor.extract(&self.ephemeral),
cbor.extract(&self.auto_save),
cbor.extract(&self.last_view),
cbor.extract(&dirty),
cbor.extract(&meta),
cbor.extract(&file_type_name),

View file

@ -112,6 +112,7 @@ pub fn retire(_: *Self, buffer: *Buffer, meta: ?[]const u8) void {
pub fn close_buffer(self: *Self, buffer: *Buffer) void {
buffer.hidden = true;
buffer.set_last_view(null);
tp.trace(tp.channel.debug, .{ "buffer", "close", buffer.get_file_path(), "hidden", buffer.hidden, "ephemeral", buffer.ephemeral });
if (buffer.is_ephemeral())
self.delete_buffer(buffer);