widgets(terminal): remove error logs

And use a buffered writer in the example
This commit is contained in:
Tim Culverhouse 2024-06-18 18:37:58 -05:00
parent f25a9b9660
commit 6043f0569a
2 changed files with 18 additions and 16 deletions

View file

@ -30,6 +30,8 @@ pub fn main() !void {
try loop.start(); try loop.start();
defer loop.stop(); defer loop.stop();
var buffered = tty.bufferedWriter();
try vx.enterAltScreen(tty.anyWriter()); try vx.enterAltScreen(tty.anyWriter());
try vx.queryTerminal(tty.anyWriter(), 1 * std.time.ns_per_s); try vx.queryTerminal(tty.anyWriter(), 1 * std.time.ns_per_s);
var env = try std.process.getEnvMap(alloc); var env = try std.process.getEnvMap(alloc);
@ -105,6 +107,7 @@ pub fn main() !void {
}); });
try vt.draw(child); try vt.draw(child);
try vx.render(tty.anyWriter()); try vx.render(buffered.writer().any());
try buffered.flush();
} }
} }

View file

@ -266,9 +266,8 @@ fn run(self: *Terminal) !void {
self.back_mutex.lock(); self.back_mutex.lock();
defer self.back_mutex.unlock(); defer self.back_mutex.unlock();
defer if (!self.dirty and self.event_queue.tryPush(.redraw)) { if (!self.dirty and self.event_queue.tryPush(.redraw))
self.dirty = true; self.dirty = true;
};
switch (event) { switch (event) {
.print => |str| { .print => |str| {
@ -303,11 +302,11 @@ fn run(self: *Terminal) !void {
}, },
// Reverse Index // Reverse Index
'M' => try self.back_screen.reverseIndex(), 'M' => try self.back_screen.reverseIndex(),
else => std.log.err("unhandled escape: {s}", .{esc}), else => log.info("unhandled escape: {s}", .{esc}),
} }
}, },
.ss2 => |ss2| std.log.err("unhandled ss2: {c}", .{ss2}), .ss2 => |ss2| log.info("unhandled ss2: {c}", .{ss2}),
.ss3 => |ss3| std.log.err("unhandled ss3: {c}", .{ss3}), .ss3 => |ss3| log.info("unhandled ss3: {c}", .{ss3}),
.csi => |seq| { .csi => |seq| {
switch (seq.final) { switch (seq.final) {
// Cursor up // Cursor up
@ -505,7 +504,7 @@ fn run(self: *Terminal) !void {
// Secondary // Secondary
'>' => try self.anyWriter().writeAll("\x1B[>1;69;0c"), '>' => try self.anyWriter().writeAll("\x1B[>1;69;0c"),
'=' => try self.anyWriter().writeAll("\x1B[=0000c"), '=' => try self.anyWriter().writeAll("\x1B[=0000c"),
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
} else { } else {
// Primary // Primary
@ -552,7 +551,7 @@ fn run(self: *Terminal) !void {
} }
}, },
3 => self.tab_stops.clearAndFree(), 3 => self.tab_stops.clearAndFree(),
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
}, },
'h', 'l' => { 'h', 'l' => {
@ -579,7 +578,7 @@ fn run(self: *Terminal) !void {
self.back_screen.cursor.row + 1, self.back_screen.cursor.row + 1,
self.back_screen.cursor.col + 1, self.back_screen.cursor.col + 1,
}), }),
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
} }
}, },
@ -598,7 +597,7 @@ fn run(self: *Terminal) !void {
}, },
} }
}, },
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
} }
}, },
@ -620,7 +619,7 @@ fn run(self: *Terminal) !void {
"\x1bP>|libvaxis {s}\x1B\\", "\x1bP>|libvaxis {s}\x1B\\",
.{"dev"}, .{"dev"},
), ),
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
} }
}, },
@ -648,16 +647,16 @@ fn run(self: *Terminal) !void {
self.back_screen.cursor.row = 0; self.back_screen.cursor.row = 0;
} }
}, },
else => std.log.err("unhandled CSI: {}", .{seq}), else => log.info("unhandled CSI: {}", .{seq}),
} }
}, },
.osc => |osc| { .osc => |osc| {
const semicolon = std.mem.indexOfScalar(u8, osc, ';') orelse { const semicolon = std.mem.indexOfScalar(u8, osc, ';') orelse {
std.log.err("unhandled osc: {s}", .{osc}); log.info("unhandled osc: {s}", .{osc});
continue; continue;
}; };
const ps = std.fmt.parseUnsigned(u8, osc[0..semicolon], 10) catch { const ps = std.fmt.parseUnsigned(u8, osc[0..semicolon], 10) catch {
std.log.err("unhandled osc: {s}", .{osc}); log.info("unhandled osc: {s}", .{osc});
continue; continue;
}; };
switch (ps) { switch (ps) {
@ -666,10 +665,10 @@ fn run(self: *Terminal) !void {
try self.title.appendSlice(osc[semicolon + 1 ..]); try self.title.appendSlice(osc[semicolon + 1 ..]);
self.event_queue.push(.title_change); self.event_queue.push(.title_change);
}, },
else => std.log.err("unhandled osc: {s}", .{osc}), else => log.info("unhandled osc: {s}", .{osc}),
} }
}, },
.apc => |apc| std.log.err("unhandled apc: {s}", .{apc}), .apc => |apc| log.info("unhandled apc: {s}", .{apc}),
} }
} }
} }