prompt displays jobs

This commit is contained in:
LordMZTE 2023-04-20 07:54:30 +02:00
parent 91a4d34811
commit 292db2dd10
Signed by: LordMZTE
GPG key ID: B64802DC33A64FF6
2 changed files with 20 additions and 0 deletions

View file

@ -8,6 +8,7 @@ const fish_code =
\\ set -x MZPROMPT_STATUS $status
\\ set -x MZPROMPT_FISH_MODE $fish_bind_mode
\\ set -x MZPROMPT_DURATION $CMD_DURATION
\\ set -x MZPROMPT_JOBS (count (jobs))
\\ {s} show
\\end
;
@ -37,6 +38,12 @@ pub fn main() !void {
return error.MissingEnv,
10,
),
.jobs = try std.fmt.parseInt(
u32,
std.os.getenv("MZPROMPT_JOBS") orelse
return error.MissingEnv,
10,
),
};
var buf = std.BoundedArray(u8, 1024 * 8).init(0) catch unreachable;

View file

@ -21,12 +21,14 @@ const symbols = struct {
const home = "";
const root = "";
const watch = "";
const jobs = "";
};
pub const Options = struct {
status: i16,
mode: FishMode,
duration: u32,
jobs: u32,
};
pub fn render(writer: anytype, options: Options) !void {
@ -55,6 +57,7 @@ fn Renderer(comptime Writer: type) type {
try self.writer.writeAll(symbols.top_left);
try self.setStyle(.{ .background = left_color });
try self.renderDuration();
try self.renderJobs();
try self.renderCwd();
self.renderGit() catch |err| {
switch (err) {
@ -123,6 +126,16 @@ fn Renderer(comptime Writer: type) type {
}
}
fn renderJobs(self: *Self) !void {
if (self.options.jobs <= 0)
return;
try self.drawLeftSep(.Cyan);
try self.setStyle(.{ .background = .Cyan, .foreground = .Black });
try self.writer.print(" {s} {}", .{ symbols.jobs, self.options.jobs });
}
fn renderCwd(self: *Self) !void {
var cwd_buf: [512]u8 = undefined;
const cwd = try std.os.getcwd(&cwd_buf);