mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-09-14 18:01:58 +00:00
input: encode help and context menu keys
This commit is contained in:
@@ -88,6 +88,8 @@ pub const keys = keys: {
|
||||
result.set(.delete, pcStyle("\x1b[3;{}~") ++ .{Entry{ .sequence = "\x1B[3~" }});
|
||||
result.set(.page_up, pcStyle("\x1b[5;{}~") ++ .{Entry{ .sequence = "\x1B[5~" }});
|
||||
result.set(.page_down, pcStyle("\x1b[6;{}~") ++ .{Entry{ .sequence = "\x1B[6~" }});
|
||||
result.set(.help, pcStyle("\x1b[28;{}~") ++ .{Entry{ .sequence = "\x1B[28~" }});
|
||||
result.set(.context_menu, pcStyle("\x1b[29;{}~") ++ .{Entry{ .sequence = "\x1B[29~" }});
|
||||
|
||||
// Function Keys. todo: f26-f35 but we need to add to input.Key
|
||||
result.set(.f1, pcStyle("\x1b[1;{}P") ++ .{Entry{ .sequence = "\x1BOP" }});
|
||||
|
||||
@@ -2580,6 +2580,43 @@ test "legacy: f13 through f25" {
|
||||
}
|
||||
}
|
||||
|
||||
test "legacy: help and context menu" {
|
||||
const Case = struct { key: key.Key, code: u8 };
|
||||
const cases = [_]Case{
|
||||
.{ .key = .help, .code = 28 },
|
||||
.{ .key = .context_menu, .code = 29 },
|
||||
};
|
||||
|
||||
var buf: [128]u8 = undefined;
|
||||
var expected_buf: [32]u8 = undefined;
|
||||
for (cases) |case| {
|
||||
{
|
||||
var writer: std.Io.Writer = .fixed(&buf);
|
||||
try legacy(&writer, .{ .key = case.key }, .{});
|
||||
const expected = try std.fmt.bufPrint(
|
||||
&expected_buf,
|
||||
"\x1b[{}~",
|
||||
.{case.code},
|
||||
);
|
||||
try testing.expectEqualStrings(expected, writer.buffered());
|
||||
}
|
||||
|
||||
{
|
||||
var writer: std.Io.Writer = .fixed(&buf);
|
||||
try legacy(&writer, .{
|
||||
.key = case.key,
|
||||
.mods = .{ .ctrl = true },
|
||||
}, .{ .modify_other_keys_state_2 = true });
|
||||
const expected = try std.fmt.bufPrint(
|
||||
&expected_buf,
|
||||
"\x1b[{};5~",
|
||||
.{case.code},
|
||||
);
|
||||
try testing.expectEqualStrings(expected, writer.buffered());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test "legacy: left_shift+tab" {
|
||||
var buf: [128]u8 = undefined;
|
||||
var writer: std.Io.Writer = .fixed(&buf);
|
||||
|
||||
Reference in New Issue
Block a user