From d12494a7b9362f6ee6b31fe21f8678e0073eb7c3 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Sun, 2 Nov 2025 18:07:31 +0100 Subject: [PATCH 1/2] fix: update flow-syntax to fix ziggy schema file extension --- build.zig.zon | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 6842ea0..f29899e 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,8 +6,8 @@ .dependencies = .{ .syntax = .{ - .url = "git+https://github.com/neurocyte/flow-syntax?ref=master#9106b13b4c98b145229ad643e7869f29c7b0816b", - .hash = "flow_syntax-0.1.0-X8jOoZQTAQCV2bjyceUHrRl_iu41imzTDLGT5R-XwT_9", + .url = "git+https://github.com/neurocyte/flow-syntax?ref=master#a2356a459e8a1c30e43da8648d45e4eaec518f2b", + .hash = "flow_syntax-0.1.0-X8jOoZQTAQCWj2TJgmEykecTmQFQGqUduPxLVZJM_y88", }, .flags = .{ .url = "git+https://github.com/neurocyte/flags?ref=main#984b27948da3e4e40a253f76c85b51ec1a9ada11", From 1c486ccd937cabbe0e1a183c31b5e23f72aa90fb Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Sun, 2 Nov 2025 18:18:52 +0100 Subject: [PATCH 2/2] fix: support no selection special case for cut and copy commands with multiple cursors closes #355 --- src/tui/editor.zig | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/tui/editor.zig b/src/tui/editor.zig index dd3c8c8..0e0d26e 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -2710,13 +2710,12 @@ pub const Editor = struct { pub const cut_internal_vim_meta: Meta = .{ .description = "Cut selection or current line to internal clipboard (vim)" }; pub fn cut(self: *Self, _: Context) Result { - const primary = self.get_primary(); const b = self.buf_for_update() catch return; var root = b.root; - if (self.cursels.items.len == 1 and primary.selection == null) - try self.select_line_at_cursor(root, primary, .include_eol); tui.clipboard_start_group(); for (self.cursels.items) |*cursel_| if (cursel_.*) |*cursel| { + if (cursel.selection == null) + try self.select_line_at_cursor(root, cursel, .include_eol); const cut_text, root = try self.cut_selection(root, cursel, tui.clipboard_allocator()); tui.clipboard_add_chunk(cut_text); }; @@ -2727,17 +2726,13 @@ pub const Editor = struct { pub const cut_meta: Meta = .{ .description = "Cut selection or current line to clipboard" }; pub fn copy(self: *Self, _: Context) Result { - const primary = self.get_primary(); const root = self.buf_root() catch return; - if (self.cursels.items.len == 1) - if (primary.selection) |_| {} else { - const sel = primary.enable_selection(root, self.metrics) catch return; - try move_cursor_begin(root, &sel.begin, self.metrics); - try move_cursor_end(root, &sel.end, self.metrics); - try move_cursor_right(root, &sel.end, self.metrics); - }; tui.clipboard_start_group(); - for (self.cursels.items) |*cursel_| if (cursel_.*) |*cursel| if (cursel.selection) |sel| { + for (self.cursels.items) |*cursel_| if (cursel_.*) |*cursel| { + const sel = if (cursel.selection) |sel| sel else blk: { + try self.select_line_at_cursor(root, cursel, .include_eol); + break :blk cursel.selection orelse continue; + }; tui.clipboard_add_chunk(try copy_selection(root, sel, tui.clipboard_allocator(), self.metrics)); }; return tui.clipboard_send_to_system();