2023-12-05 12:24:48 -08:00
|
|
|
$Global:__IsOriginalPrompt = $function:Prompt
|
|
|
|
|
|
2024-02-15 15:13:32 -05:00
|
|
|
function Global:__IsTestingPrompt() {
|
|
|
|
|
return "PS > "
|
|
|
|
|
}
|
|
|
|
|
if ($env:ISTERM_TESTING -eq "1") {
|
|
|
|
|
$Global:__IsOriginalPrompt = $function:__IsTestingPrompt
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-14 14:53:12 -08:00
|
|
|
function Global:__IS-Escape-Value([string]$value) {
|
|
|
|
|
[regex]::Replace($value, '[\\\n;]', { param($match)
|
|
|
|
|
-Join (
|
|
|
|
|
[System.Text.Encoding]::UTF8.GetBytes($match.Value) | ForEach-Object { '\x{0:x2}' -f $_ }
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-05 12:24:48 -08:00
|
|
|
function Global:Prompt() {
|
|
|
|
|
$Result = "$([char]0x1b)]6973;PS`a"
|
|
|
|
|
$Result += $Global:__IsOriginalPrompt.Invoke()
|
|
|
|
|
$Result += "$([char]0x1b)]6973;PE`a"
|
2023-12-14 14:53:12 -08:00
|
|
|
$Result += if ($pwd.Provider.Name -eq 'FileSystem') { "$([char]0x1b)]6973;CWD;$(__IS-Escape-Value $pwd.ProviderPath)`a" }
|
2023-12-05 12:24:48 -08:00
|
|
|
return $Result
|
|
|
|
|
}
|