fix: bracketed paste should check for ctrl+j and insert \n

closes #236
This commit is contained in:
CJ van den Berg 2025-04-28 22:58:55 +02:00
parent e39d9ed4b3
commit 8355f14f62
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -314,8 +314,10 @@ fn fmtmsg(self: *Self, value: anytype) std.ArrayList(u8).Writer.Error![]const u8
fn handle_bracketed_paste_input(self: *Self, cbor_msg: []const u8) !bool { fn handle_bracketed_paste_input(self: *Self, cbor_msg: []const u8) !bool {
var keypress: input.Key = undefined; var keypress: input.Key = undefined;
var egc_: input.Key = undefined; var egc_: input.Key = undefined;
if (try cbor.match(cbor_msg, .{ "I", cbor.number, cbor.extract(&keypress), cbor.extract(&egc_), cbor.string, 0 })) { var mods: usize = undefined;
if (try cbor.match(cbor_msg, .{ "I", cbor.number, cbor.extract(&keypress), cbor.extract(&egc_), cbor.string, cbor.extract(&mods) })) {
switch (keypress) { switch (keypress) {
106 => if (mods == 4) try self.bracketed_paste_buffer.appendSlice("\n") else try self.bracketed_paste_buffer.appendSlice("j"),
input.key.enter => try self.bracketed_paste_buffer.appendSlice("\n"), input.key.enter => try self.bracketed_paste_buffer.appendSlice("\n"),
input.key.tab => try self.bracketed_paste_buffer.appendSlice("\t"), input.key.tab => try self.bracketed_paste_buffer.appendSlice("\t"),
else => if (!input.is_non_input_key(keypress)) { else => if (!input.is_non_input_key(keypress)) {