Fresh start to remove subtree artifacts

This commit is contained in:
2025-01-22 12:56:39 +00:00
parent a42f4061af
commit dad55ecd26
44 changed files with 7651 additions and 1920 deletions

View File

@@ -1,62 +1,45 @@
export def create_left_prompt [] -> string {
canonicalize_linefeeds (
^starship prompt
--cmd-duration $env.CMD_DURATION_MS
$"--status=($env.LAST_EXIT_CODE)"
--terminal-width (term size).columns
)
def get_env [s: string]: string -> string {
try { $env | get --ignore-errors $s } catch { "" }
}
export def create_right_prompt [] -> string {
canonicalize_linefeeds (
^starship prompt
--right
--cmd-duration $env.CMD_DURATION_MS
$"--status=($env.LAST_EXIT_CODE)"
--terminal-width (term size).columns
)
export def create_left_prompt []: nothing -> string {
^starship prompt --cmd-duration (get_env "CMD_DURATION_MS") --status (get_env "LAST_EXIT_CODE") --terminal-width (term size).columns
}
export def create_continuation_prompt [] -> string {
canonicalize_linefeeds (
^starship prompt
--continuation
--cmd-duration $env.CMD_DURATION_MS
$"--status=($env.LAST_EXIT_CODE)"
--terminal-width (term size).columns
)
export def create_right_prompt []: nothing -> string {
^starship prompt --right --cmd-duration (get_env "CMD_DURATION_MS") --status (get_env "LAST_EXIT_CODE") --terminal-width (term size).columns
}
def parse_ms_to_human_readable [ms: string] -> string {
let $time_in_ms = $ms | into int;
if $time_in_ms < 1000 {
$"($time_in_ms | into string)ms"
} else if $time_in_ms < 1000 * 60 {
$"(($time_in_ms / 1000) | into string --decimals 2)s"
} else if $time_in_ms < 1000 * 60 * 60 {
$"(($time_in_ms / (1000 * 60)) | into string --decimals 2)m"
} else if $time_in_ms < 1000 * 60 * 60 * 24 {
$"(($time_in_ms / (1000 * 60 * 60)) | into string --decimals 2)h"
export def create_continuation_prompt []: nothing -> string {
^starship prompt --continuation --cmd-duration (get_env "CMD_DURATION_MS") --status (get_env "LAST_EXIT_CODE") --terminal-width (term size).columns
}
def parse_ms_to_human_readable [ms: string]: string -> string {
if $ms == "" {
$ms
} else {
$"(($time_in_ms // (1000 * 60 * 60 * 24)) | into string)d/(parse_ms_to_human_readable ($time_in_ms mod (1000 * 60 * 60 * 24)))"
} | into string
}
export def create_transient_prompt_left [] -> string {
if $env.LAST_EXIT_CODE == 0 {
$"(ansi green_bold)(ansi reset)"
} else {
$"(ansi red_bold)(ansi reset)"
let $time_in_ms = $ms | into int;
if $time_in_ms < 1000 {
$"($time_in_ms | into string)ms"
} else if $time_in_ms < 1000 * 60 {
$"(($time_in_ms / 1000) | into string --decimals 2)s"
} else if $time_in_ms < 1000 * 60 * 60 {
$"(($time_in_ms / (1000 * 60)) | into string --decimals 2)m"
} else if $time_in_ms < 1000 * 60 * 60 * 24 {
$"(($time_in_ms / (1000 * 60 * 60)) | into string --decimals 2)h"
} else {
$"(($time_in_ms // (1000 * 60 * 60 * 24)) | into string)d/(parse_ms_to_human_readable ($time_in_ms mod (1000 * 60 * 60 * 24)))"
} | into string
}
}
export def create_transient_prompt_indicator [] -> string {
$"(ansi blue_bold)(parse_ms_to_human_readable $env.CMD_DURATION_MS) (if $env.LAST_EXIT_CODE == 0 { ansi green_bold } else { ansi red_bold })(ansi reset) "
}
def canonicalize_linefeeds (x: string) -> string {
if ("OS" in $env) and ($env.OS == "Windows_NT") {
$x | str replace "\n" "\r\n"
export def create_transient_prompt_left []: nothing -> string {
if (get_env "LAST_EXIT_CODE") == 0 {
$"(ansi green_bold)󱔳(ansi reset)"
} else {
$x
$"(ansi red_bold)󱔷(ansi reset)"
}
}
export def create_transient_prompt_indicator []: nothing -> string {
$"(ansi blue_bold) 󰔛 (parse_ms_to_human_readable (get_env "CMD_DURATION_MS")) (if (get_env "LAST_EXIT_CODE") == 0 { ansi green_bold } else { ansi red_bold })(ansi reset) "
}