address review comments

pull/8992/head
Jeffrey C. Ollie 2025-10-02 12:57:53 -05:00
parent 07124dba64
commit 1c23ebc6f1
No known key found for this signature in database
GPG Key ID: 1BB9EB7EA602265B
3 changed files with 10 additions and 16 deletions

View File

@ -153,7 +153,7 @@ selection_scroll_active: bool = false,
/// precision timestamp. It does not necessarily need to correspond to the
/// actual time, but we must be able to compare two subsequent timestamps to get
/// the wall clock time that has elapsed between timestamps.
command_timer: ?i128 = null,
command_timer: ?std.time.Instant = null,
/// The effect of an input event. This can be used by callers to take
/// the appropriate action after an input event. For example, key
@ -999,22 +999,16 @@ pub fn handleMessage(self: *Surface, msg: Message) !void {
try self.selectionScrollTick();
},
.start_command_timer => {
self.command_timer = std.time.nanoTimestamp();
.start_command => {
self.command_timer = try .now();
},
.stop_command_timer => |v| timer: {
const end = std.time.nanoTimestamp();
.stop_command => |v| timer: {
const end: std.time.Instant = try .now();
const start = self.command_timer orelse break :timer;
self.command_timer = null;
const difference = end - start;
// skip obviously silly results
if (difference < 0) break :timer;
if (difference > std.math.maxInt(u64)) break :timer;
const duration: Duration = .{ .duration = @intCast(difference) };
const duration: Duration = .{ .duration = end.since(start) };
log.debug("command took {}", .{duration});
_ = self.rt_app.performAction(

View File

@ -97,12 +97,12 @@ pub const Message = union(enum) {
progress_report: terminal.osc.Command.ProgressReport,
/// A command has started in the shell, start a timer.
start_command_timer,
start_command,
/// A command has finished in the shell, stop the timer and send out
/// notifications as appropriate. The optional u8 is the exit code
/// of the command.
stop_command_timer: ?u8,
stop_command: ?u8,
pub const ReportTitleStyle = enum {
csi_21_t,

View File

@ -1054,11 +1054,11 @@ pub const StreamHandler = struct {
pub inline fn endOfInput(self: *StreamHandler) !void {
self.terminal.markSemanticPrompt(.command);
self.surfaceMessageWriter(.start_command_timer);
self.surfaceMessageWriter(.start_command);
}
pub inline fn endOfCommand(self: *StreamHandler, exit_code: ?u8) !void {
self.surfaceMessageWriter(.{ .stop_command_timer = exit_code });
self.surfaceMessageWriter(.{ .stop_command = exit_code });
}
pub fn reportPwd(self: *StreamHandler, url: []const u8) !void {