mirror of
https://github.com/RGBCube/nu_scripts
synced 2025-07-31 14:17:45 +00:00
56 lines
1.3 KiB
Text
56 lines
1.3 KiB
Text
export def combine [txt: string, fg: record, bg: record] {
|
|
{
|
|
txt: $txt,
|
|
fg: $fg.fg,
|
|
bg: $bg.fg,
|
|
bli: ($fg.bli or $bg.bli),
|
|
bol: ($fg.bol or $bg.bol),
|
|
dim: ($fg.dim or $bg.dim),
|
|
hid: ($fg.hid or $bg.hid),
|
|
ita: ($fg.ita or $bg.ita),
|
|
rev: ($fg.rev or $bg.rev),
|
|
stk: ($fg.stk or $bg.stk),
|
|
und: ($fg.und or $bg.und)
|
|
}
|
|
}
|
|
|
|
export def create [txt: string,
|
|
fg = "default", bg = "default",
|
|
bli = false, bol = false, dim = false, hid = false,
|
|
ita = false, rev = false, stk = false, und = false] {
|
|
{
|
|
txt: $txt,
|
|
fg: $fg,
|
|
bg: $bg,
|
|
bli: $bli,
|
|
bol: $bol,
|
|
dim: $dim,
|
|
hid: $hid,
|
|
ita: $ita,
|
|
rev: $rev,
|
|
stk: $stk,
|
|
und: $und
|
|
}
|
|
}
|
|
|
|
export def render [obj: record] {
|
|
let attr = ""
|
|
let attr = $"($attr)(if $obj.bli {'l'})"
|
|
let attr = $"($attr)(if $obj.bol {'b'})"
|
|
let attr = $"($attr)(if $obj.dim {'d'})"
|
|
let attr = $"($attr)(if $obj.hid {'h'})"
|
|
let attr = $"($attr)(if $obj.ita {'i'})"
|
|
let attr = $"($attr)(if $obj.rev {'r'})"
|
|
let attr = $"($attr)(if $obj.stk {'s'})"
|
|
let attr = $"($attr)(if $obj.und {'u'})"
|
|
|
|
let color = {fg: $obj.fg, bg: $obj.bg, attr: $attr}
|
|
|
|
$"(ansi $color)($obj.txt)(ansi reset)"
|
|
}
|
|
|
|
export def reverse [obj: record] {
|
|
let r = ($obj | update fg $obj.bg)
|
|
let r = ($r | update bg $obj.fg)
|
|
$r
|
|
}
|