feat: store the last used reflow_width in the editor session

This commit is contained in:
CJ van den Berg 2026-02-01 20:33:26 +01:00
parent ec71a7041b
commit 4898f02570
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -379,6 +379,7 @@ pub const Editor = struct {
indent_size: usize, indent_size: usize,
tab_width: usize, tab_width: usize,
indent_mode: IndentMode, indent_mode: IndentMode,
reflow_width: ?usize = null,
last: struct { last: struct {
root: ?Buffer.Root = null, root: ?Buffer.Root = null,
@ -516,13 +517,14 @@ pub const Editor = struct {
} }
pub fn write_state(self: *const Self, writer: *std.Io.Writer) !void { pub fn write_state(self: *const Self, writer: *std.Io.Writer) !void {
try cbor.writeArrayHeader(writer, 12); try cbor.writeArrayHeader(writer, 13);
try cbor.writeValue(writer, self.file_path orelse ""); try cbor.writeValue(writer, self.file_path orelse "");
try cbor.writeValue(writer, self.last_find_query orelse ""); try cbor.writeValue(writer, self.last_find_query orelse "");
try cbor.writeValue(writer, self.enable_format_on_save); try cbor.writeValue(writer, self.enable_format_on_save);
try cbor.writeValue(writer, self.indent_size); try cbor.writeValue(writer, self.indent_size);
try cbor.writeValue(writer, self.tab_width); try cbor.writeValue(writer, self.tab_width);
try cbor.writeValue(writer, self.indent_mode); try cbor.writeValue(writer, self.indent_mode);
try cbor.writeValue(writer, self.reflow_width);
try cbor.writeValue(writer, self.syntax_no_render); try cbor.writeValue(writer, self.syntax_no_render);
try cbor.writeValue(writer, self.insert_triggers.items); try cbor.writeValue(writer, self.insert_triggers.items);
try cbor.writeValue(writer, self.delete_triggers.items); try cbor.writeValue(writer, self.delete_triggers.items);
@ -557,6 +559,7 @@ pub const Editor = struct {
tp.extract(&self.indent_size), tp.extract(&self.indent_size),
tp.extract(&self.tab_width), tp.extract(&self.tab_width),
tp.extract(&self.indent_mode), tp.extract(&self.indent_mode),
tp.extract(&self.reflow_width),
tp.extract(&self.syntax_no_render), tp.extract(&self.syntax_no_render),
cbor.extractAlloc(&insert_triggers, self.allocator), cbor.extractAlloc(&insert_triggers, self.allocator),
cbor.extractAlloc(&delete_triggers, self.allocator), cbor.extractAlloc(&delete_triggers, self.allocator),
@ -6830,8 +6833,9 @@ pub const Editor = struct {
} }
fn reflow_cursel(self: *Self, root_: Buffer.Root, cursel: *CurSel, allocator: Allocator, ctx: Context) error{Stop}!Buffer.Root { fn reflow_cursel(self: *Self, root_: Buffer.Root, cursel: *CurSel, allocator: Allocator, ctx: Context) error{Stop}!Buffer.Root {
var reflow_width: usize = tui.config().reflow_width; var reflow_width: usize = self.reflow_width orelse tui.config().reflow_width;
_ = ctx.args.match(.{tp.extract(&reflow_width)}) catch {}; _ = ctx.args.match(.{tp.extract(&reflow_width)}) catch {};
self.reflow_width = reflow_width;
var root = root_; var root = root_;
var sel = cursel.selection orelse return root; var sel = cursel.selection orelse return root;
sel.normalize(); sel.normalize();