ref(ctlseqs): use control sequence file; rename key names
All checks were successful
Zig Project Action / Lint, Spell-check and test zig project (push) Successful in 46s

This commit is contained in:
2025-02-17 23:08:47 +01:00
parent a9f48bfb6a
commit c2080ab40f
4 changed files with 87 additions and 75 deletions

View File

@@ -182,7 +182,7 @@ pub fn App(comptime E: type) type {
'B' => .{ .cp = key.Down },
'C' => .{ .cp = key.Right },
'D' => .{ .cp = key.Left },
'E' => .{ .cp = key.Kp_Begin },
'E' => .{ .cp = key.KpBegin },
'F' => .{ .cp = key.End },
'H' => .{ .cp = key.Home },
'P' => .{ .cp = key.F1 },
@@ -216,7 +216,7 @@ pub fn App(comptime E: type) type {
'B' => key.Down,
'C' => key.Right,
'D' => key.Left,
'E' => key.Kp_Begin,
'E' => key.KpBegin,
'F' => key.End,
'H' => key.Home,
'P' => key.F1,
@@ -241,8 +241,8 @@ pub fn App(comptime E: type) type {
.cp = switch (number) {
2 => key.Insert,
3 => key.Delete,
5 => key.Page_Up,
6 => key.Page_Down,
5 => key.PageUp,
6 => key.PageDown,
7 => key.Home,
8 => key.End,
11 => key.F1,
@@ -259,7 +259,7 @@ pub fn App(comptime E: type) type {
24 => key.F12,
// 200 => return .{ .event = .paste_start, .n = sequence.len },
// 201 => return .{ .event = .paste_end, .n = sequence.len },
57427 => key.Kp_Begin,
57427 => key.KpBegin,
else => unreachable,
},
};

View File

@@ -58,8 +58,11 @@ pub const cub = "\x1b[{d}D";
// Erase
pub const erase_below_cursor = "\x1b[J";
pub const clear_screen = "\x1b[2J";
// alt screen
pub const save_screen = "\x1b[?47h";
pub const restore_screen = "\x1b[?47l";
pub const smcup = "\x1b[?1049h";
pub const rmcup = "\x1b[?1049l";

View File

@@ -48,14 +48,14 @@ pub const Left: u21 = 57350;
pub const Right: u21 = 57351;
pub const Up: u21 = 57352;
pub const Down: u21 = 57353;
pub const Page_Up: u21 = 57354;
pub const Page_Down: u21 = 57355;
pub const PageUp: u21 = 57354;
pub const PageDown: u21 = 57355;
pub const Home: u21 = 57356;
pub const End: u21 = 57357;
pub const Caps_Lock: u21 = 57358;
pub const Scroll_Lock: u21 = 57359;
pub const Num_Lock: u21 = 57360;
pub const Print_Screen: u21 = 57361;
pub const CapsLock: u21 = 57358;
pub const ScrollLock: u21 = 57359;
pub const NumLock: u21 = 57360;
pub const PrintScreen: u21 = 57361;
pub const Pause: u21 = 57362;
pub const Menu: u21 = 57363;
pub const F1: u21 = 57364;
@@ -93,59 +93,59 @@ pub const F32: u21 = 57395;
pub const F33: u21 = 57396;
pub const F34: u21 = 57397;
pub const F35: u21 = 57398;
pub const Kp_0: u21 = 57399;
pub const Kp_1: u21 = 57400;
pub const Kp_2: u21 = 57401;
pub const Kp_3: u21 = 57402;
pub const Kp_4: u21 = 57403;
pub const Kp_5: u21 = 57404;
pub const Kp_6: u21 = 57405;
pub const Kp_7: u21 = 57406;
pub const Kp_8: u21 = 57407;
pub const Kp_9: u21 = 57408;
pub const Kp_Decimal: u21 = 57409;
pub const Kp_Divide: u21 = 57410;
pub const Kp_Multiply: u21 = 57411;
pub const Kp_Subtract: u21 = 57412;
pub const Kp_Add: u21 = 57413;
pub const Kp_Enter: u21 = 57414;
pub const Kp_Equal: u21 = 57415;
pub const Kp_Separator: u21 = 57416;
pub const Kp_Left: u21 = 57417;
pub const Kp_Right: u21 = 57418;
pub const Kp_Up: u21 = 57419;
pub const Kp_Down: u21 = 57420;
pub const Kp_Page_up: u21 = 57421;
pub const Kp_Page_down: u21 = 57422;
pub const Kp_Home: u21 = 57423;
pub const Kp_End: u21 = 57424;
pub const Kp_Insert: u21 = 57425;
pub const Kp_Delete: u21 = 57426;
pub const Kp_Begin: u21 = 57427;
pub const Media_Play: u21 = 57428;
pub const Media_Pause: u21 = 57429;
pub const Media_Play_pause: u21 = 57430;
pub const Media_Reverse: u21 = 57431;
pub const Media_Stop: u21 = 57432;
pub const Media_Fast_forward: u21 = 57433;
pub const Media_Rewind: u21 = 57434;
pub const Media_Track_next: u21 = 57435;
pub const Media_Track_previous: u21 = 57436;
pub const Media_Record: u21 = 57437;
pub const Lower_Volume: u21 = 57438;
pub const Raise_Volume: u21 = 57439;
pub const Mute_Volume: u21 = 57440;
pub const Left_Shift: u21 = 57441;
pub const Left_Control: u21 = 57442;
pub const Left_Alt: u21 = 57443;
pub const Left_Super: u21 = 57444;
pub const Left_Hyper: u21 = 57445;
pub const Left_Meta: u21 = 57446;
pub const Right_shift: u21 = 57447;
pub const Right_control: u21 = 57448;
pub const Right_alt: u21 = 57449;
pub const Right_super: u21 = 57450;
pub const Right_hyper: u21 = 57451;
pub const Right_meta: u21 = 57452;
pub const Iso_Level_3_Shift: u21 = 57453;
pub const Iso_Level_5_Shift: u21 = 57454;
pub const Kp0: u21 = 57399;
pub const Kp1: u21 = 57400;
pub const Kp2: u21 = 57401;
pub const Kp3: u21 = 57402;
pub const Kp4: u21 = 57403;
pub const Kp5: u21 = 57404;
pub const Kp6: u21 = 57405;
pub const Kp7: u21 = 57406;
pub const Kp8: u21 = 57407;
pub const Kp9: u21 = 57408;
pub const KpDecimal: u21 = 57409;
pub const KpDivide: u21 = 57410;
pub const KpMultiply: u21 = 57411;
pub const KpSubtract: u21 = 57412;
pub const KpAdd: u21 = 57413;
pub const KpEnter: u21 = 57414;
pub const KpEqual: u21 = 57415;
pub const KpSeparator: u21 = 57416;
pub const KpLeft: u21 = 57417;
pub const KpRight: u21 = 57418;
pub const KpUp: u21 = 57419;
pub const KpDown: u21 = 57420;
pub const KpPage_up: u21 = 57421;
pub const KpPage_down: u21 = 57422;
pub const KpHome: u21 = 57423;
pub const KpEnd: u21 = 57424;
pub const KpInsert: u21 = 57425;
pub const KpDelete: u21 = 57426;
pub const KpBegin: u21 = 57427;
pub const MediaPlay: u21 = 57428;
pub const MediaPause: u21 = 57429;
pub const MediaPlayPause: u21 = 57430;
pub const MediaReverse: u21 = 57431;
pub const MediaStop: u21 = 57432;
pub const MediaFastForward: u21 = 57433;
pub const MediaRewind: u21 = 57434;
pub const MediaTrackNext: u21 = 57435;
pub const MediaTrackPrevious: u21 = 57436;
pub const MediaRecord: u21 = 57437;
pub const LowerVolume: u21 = 57438;
pub const RaiseVolume: u21 = 57439;
pub const MuteVolume: u21 = 57440;
pub const LeftShift: u21 = 57441;
pub const LeftControl: u21 = 57442;
pub const LeftAlt: u21 = 57443;
pub const LeftSuper: u21 = 57444;
pub const LeftHyper: u21 = 57445;
pub const LeftMeta: u21 = 57446;
pub const RightShift: u21 = 57447;
pub const RightControl: u21 = 57448;
pub const RightAlt: u21 = 57449;
pub const RightSuper: u21 = 57450;
pub const RightHyper: u21 = 57451;
pub const RightMeta: u21 = 57452;
pub const IsoLevel3Shift: u21 = 57453;
pub const IsoLevel5Shift: u21 = 57454;

View File

@@ -1,5 +1,6 @@
const std = @import("std");
pub const code_point = @import("code_point");
const ctlseqs = @import("ctlseqs.zig");
const Key = @import("key.zig").Key;
const Position = @import("size.zig").Position;
@@ -25,35 +26,43 @@ pub fn getTerminalSize() Size {
}
pub fn saveScreen() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?47h");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.save_screen);
}
pub fn restoreScreen() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?47l");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.restore_screen);
}
pub fn enterAltScreen() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?1049h");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.smcup);
}
pub fn exitAltScreen() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?1049l");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.rmcup);
}
pub fn clearScreen() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[2J");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.clear_screen);
}
pub fn hideCursor() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?25l");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.hide_cursor);
}
pub fn showCursor() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[?25h");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.show_cursor);
}
pub fn setCursorPositionHome() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, "\x1b[H");
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.home);
}
pub fn enableMouseSupport() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.mouse_set);
}
pub fn disableMouseSupport() !void {
_ = try std.posix.write(std.posix.STDIN_FILENO, ctlseqs.mouse_reset);
}
pub fn read(buf: []u8) !usize {