fix: do not try to auto save ephemeral buffers

This commit is contained in:
CJ van den Berg 2025-12-10 12:26:21 +01:00
parent 0974935ced
commit b9b49c4164
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -722,7 +722,7 @@ pub const Editor = struct {
buffer.file_type_icon = fti; buffer.file_type_icon = fti;
buffer.file_type_color = ftc; buffer.file_type_color = ftc;
} }
const auto_save = if (self.buffer) |b| b.is_auto_save() else false; const auto_save = if (self.buffer) |b| b.is_auto_save() and !b.is_ephemeral() else false;
if (buffer_meta) |meta| { if (buffer_meta) |meta| {
const frame_ = tracy.initZone(@src(), .{ .name = "extract_state" }); const frame_ = tracy.initZone(@src(), .{ .name = "extract_state" });
@ -804,7 +804,7 @@ pub const Editor = struct {
if (self.file_path) |file_path| { if (self.file_path) |file_path| {
if (self.buffer) |b_mut| try b_mut.store_to_file_and_clean(file_path); if (self.buffer) |b_mut| try b_mut.store_to_file_and_clean(file_path);
} else return error.SaveNoFileName; } else return error.SaveNoFileName;
try self.send_editor_save(self.file_path.?, b.is_auto_save()); try self.send_editor_save(self.file_path.?, b.is_auto_save() and !b.is_ephemeral());
self.last.dirty = false; self.last.dirty = false;
self.update_event() catch {}; self.update_event() catch {};
} }
@ -1850,7 +1850,7 @@ pub const Editor = struct {
_ = try self.handlers.msg(.{ "E", "update", token_from(new_root), token_from(old_root), @intFromEnum(eol_mode) }); _ = try self.handlers.msg(.{ "E", "update", token_from(new_root), token_from(old_root), @intFromEnum(eol_mode) });
if (self.buffer) |buffer| if (self.syntax) |_| if (self.file_path) |file_path| if (old_root != null and new_root != null) if (self.buffer) |buffer| if (self.syntax) |_| if (self.file_path) |file_path| if (old_root != null and new_root != null)
project_manager.did_change(file_path, buffer.lsp_version, try text_from_root(new_root, eol_mode), try text_from_root(old_root, eol_mode), eol_mode) catch {}; project_manager.did_change(file_path, buffer.lsp_version, try text_from_root(new_root, eol_mode), try text_from_root(old_root, eol_mode), eol_mode) catch {};
if (self.buffer) |b| if (b.is_auto_save()) if (self.buffer) |b| if (b.is_auto_save() and !b.is_ephemeral())
tp.self_pid().send(.{ "cmd", "save_file", .{} }) catch {}; tp.self_pid().send(.{ "cmd", "save_file", .{} }) catch {};
} }
@ -6509,7 +6509,7 @@ pub const Editor = struct {
buffer.file_type_color = ftc; buffer.file_type_color = ftc;
} }
const file_exists = if (self.buffer) |b| b.file_exists else false; const file_exists = if (self.buffer) |b| b.file_exists else false;
const auto_save = if (self.buffer) |b| b.is_auto_save() else false; const auto_save = if (self.buffer) |b| b.is_auto_save() and !b.is_ephemeral() else false;
try self.send_editor_open(self.file_path orelse "", file_exists, ftn, fti, ftc, auto_save); try self.send_editor_open(self.file_path orelse "", file_exists, ftn, fti, ftc, auto_save);
self.logger.print("file type {s}", .{file_type}); self.logger.print("file type {s}", .{file_type});
} }
@ -6520,7 +6520,7 @@ pub const Editor = struct {
const fti = if (self.file_type) |ft| ft.icon orelse file_type_config.default.icon else file_type_config.default.icon; const fti = if (self.file_type) |ft| ft.icon orelse file_type_config.default.icon else file_type_config.default.icon;
const ftc = if (self.file_type) |ft| ft.color orelse file_type_config.default.color else file_type_config.default.color; const ftc = if (self.file_type) |ft| ft.color orelse file_type_config.default.color else file_type_config.default.color;
const file_exists = if (self.buffer) |b| b.file_exists else false; const file_exists = if (self.buffer) |b| b.file_exists else false;
const auto_save = if (self.buffer) |b| b.is_auto_save() else false; const auto_save = if (self.buffer) |b| b.is_auto_save() and !b.is_ephemeral() else false;
try self.send_editor_open(self.file_path orelse "", file_exists, ftn, fti, ftc, auto_save); try self.send_editor_open(self.file_path orelse "", file_exists, ftn, fti, ftc, auto_save);
self.last = .{}; self.last = .{};
} }