mirror of
https://mzte.de/git/LordMZTE/dotfiles.git
synced 2024-06-01 19:11:52 +02:00
prompt displays jobs
This commit is contained in:
parent
91a4d34811
commit
292db2dd10
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue