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();
defer loop.stop();
var buffered = tty.bufferedWriter();
try vx.enterAltScreen(tty.anyWriter());
try vx.queryTerminal(tty.anyWriter(), 1 * std.time.ns_per_s);
var env = try std.process.getEnvMap(alloc);
@ -105,6 +107,7 @@ pub fn main() !void {
});
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();
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;
};
switch (event) {
.print => |str| {
@ -303,11 +302,11 @@ fn run(self: *Terminal) !void {
},
// Reverse Index
'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}),
.ss3 => |ss3| std.log.err("unhandled ss3: {c}", .{ss3}),
.ss2 => |ss2| log.info("unhandled ss2: {c}", .{ss2}),
.ss3 => |ss3| log.info("unhandled ss3: {c}", .{ss3}),
.csi => |seq| {
switch (seq.final) {
// Cursor up
@ -505,7 +504,7 @@ fn run(self: *Terminal) !void {
// Secondary
'>' => try self.anyWriter().writeAll("\x1B[>1;69;0c"),
'=' => try self.anyWriter().writeAll("\x1B[=0000c"),
else => std.log.err("unhandled CSI: {}", .{seq}),
else => log.info("unhandled CSI: {}", .{seq}),
}
} else {
// Primary
@ -552,7 +551,7 @@ fn run(self: *Terminal) !void {
}
},
3 => self.tab_stops.clearAndFree(),
else => std.log.err("unhandled CSI: {}", .{seq}),
else => log.info("unhandled CSI: {}", .{seq}),
}
},
'h', 'l' => {
@ -579,7 +578,7 @@ fn run(self: *Terminal) !void {
self.back_screen.cursor.row + 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\\",
.{"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;
}
},
else => std.log.err("unhandled CSI: {}", .{seq}),
else => log.info("unhandled CSI: {}", .{seq}),
}
},
.osc => |osc| {
const semicolon = std.mem.indexOfScalar(u8, osc, ';') orelse {
std.log.err("unhandled osc: {s}", .{osc});
log.info("unhandled osc: {s}", .{osc});
continue;
};
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;
};
switch (ps) {
@ -666,10 +665,10 @@ fn run(self: *Terminal) !void {
try self.title.appendSlice(osc[semicolon + 1 ..]);
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}),
}
}
}