internal/prompts/hyper.prompt.ps1

function global:prompt
{
    #region Helpers
    function frame
    {
        [CmdletBinding()]
        Param (
            $Text
        )
        
        Write-Host $Text @splatFrame
    }
    
    function cont
    {
        [CmdletBinding()]
        Param (
            $Text
        )
        
        Write-Host $Text @splatContent
    }
    #endregion Helpers
    
    $Arr = [char]9658
    #region Time Section
    $splatFrame = @{
        ForegroundColor           = "DarkGray"
        BackgroundColor           = "Gray"
        NoNewLine               = $true
    }
    
    $splatContent = @{
        ForegroundColor           = "Black"
        BackgroundColor           = "Gray"
        NoNewLine               = $true
    }
    
    frame "$Arr ["
    cont "$(Get-Date -Format "HH:mm:ss")"
    frame "] "
    
    $history = Get-History -ErrorAction Ignore | Select-Object -Last 1
    
    if ($history)
    {
        cont "$($history.StartExecutionTime.ToString("HH:mm:ss"))"
        frame " | "
        cont ($history.EndExecutionTime - $history.StartExecutionTime).ToString().Split(".")[0]
        frame " | "
        cont "$($history.EndExecutionTime.ToString("HH:mm:ss"))"
        
        frame " "
    }
    #endregion Time Section
    
    #region Path Section
    $splatFrame = @{
        ForegroundColor           = "Cyan"
        BackgroundColor           = "DarkGray"
        NoNewLine               = $true
    }
    
    $splatContent = @{
        ForegroundColor            = "Green"
        BackgroundColor            = "DarkGray"
        NoNewLine                = $true
    }
    
    frame "$Arr "
    cont $executionContext.SessionState.Path.CurrentLocation.Drive.Provider.Name
    frame " | "
    cont $executionContext.SessionState.Path.CurrentLocation.Drive.Name
    frame " | "
    cont $executionContext.SessionState.Path.CurrentLocation.ProviderPath
    frame " $("$Arr" * (1 + $NestedPromptLevel)) "
    #endregion Path Section
    
    Write-Host ""
    " "
}