From 3d52285361bf810f5bc6514b3646ab9ff133d190 Mon Sep 17 00:00:00 2001 From: lksz Date: Mon, 11 Oct 2021 22:29:08 -0400 Subject: [PATCH] Improved git prompt styling --- base/Setup-MyPowerLineTheme.ps1 | 6 +++--- base/profile.d/Style.ps1 | 37 ++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/base/Setup-MyPowerLineTheme.ps1 b/base/Setup-MyPowerLineTheme.ps1 index ba8bb2e..ea753d1 100644 --- a/base/Setup-MyPowerLineTheme.ps1 +++ b/base/Setup-MyPowerLineTheme.ps1 @@ -18,15 +18,15 @@ $local:MyPowerLineSetup = [ordered]@{ Prompt = @( { "`n" } # A spaced line { New-PromptText -EBg VioletRed4 $MyInvocation.HistoryId } - { Get-Elapsed -Trim } { Get-SegmentedPath -LengthLimit 30 } { Write-VcsStatus } # Right-align block { "`t" } - { "$env:USERNAME @ $env:COMPUTERNAME" } + { "$($PromptCache.Username)@$($PromptCache.Hostname)" } + { Get-Elapsed -Trim } { Get-Date -Format 'HH:mm:ss' } - { Get-Date -Format 'MM/dd ddd' } + { Get-Date -Format 'ddd(dd)' } { "$PSOSName " } { "`n" } diff --git a/base/profile.d/Style.ps1 b/base/profile.d/Style.ps1 index 1d44e74..f896de7 100644 --- a/base/profile.d/Style.ps1 +++ b/base/profile.d/Style.ps1 @@ -7,15 +7,38 @@ $global:IsOutputANSICompatible = ( ) Get-Command -ListImported Set-PSReadLineKeyHandler -ErrorAction SilentlyContinue | ForEach-Object { Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete } -if( (Get-Command -ListImported Set-PowerLinePrompt -ErrorAction Ignore) ) { - $global:PSOSName = [SystemName]::_GetValidValues("",$true,$true) | Select-Object -First 1 - if( Get-Command -ListImported Get-GitDirectory -ErrorAction Ignore ) { $null = Get-GitDirectory } - if( Test-Path variable:global:GitPromptSettings ) { - $global:GitPromptSettings.TruncatedBranchSuffix = [char]0x2026 - $global:GitPromptSettings.BeforeStatus.Text = [PoshCode.Pansies.Entities]::ExtendedCharacters.Branch - $global:GitPromptSettings.AfterStatus.Text = [string]::Empty +# Initialize posh-git +Get-Command -ListImported Get-GitDirectory -ErrorAction Ignore | + ForEach-Object { + $null = Get-GitDirectory + + if( Test-Path variable:global:GitPromptSettings ) { + $local:g = $global:GitPromptSettings + $g.WorkingColor.ForegroundColor = [System.ConsoleColor]::DarkYellow + $g.TruncatedBranchSuffix = [char]0x2026 + $g.PathStatusSeparator = [PoshCode.Pansies.Entities]::ExtendedCharacters.Branch + $g.BeforeStatus.Text = [string]::Empty + $g.AfterStatus.Text = [string]::Empty + $g.BranchGoneStatusSymbol.Text = [char]0x2262 + $g.LocalWorkingStatusSymbol.Text = [char]0xF044 + $g.LocalStagedStatusSymbol.Text = [char]0xF046 + $g.BeforeStash.Text = " $([char]0xF692)" + $g.AfterStash.Text = [string]::Empty + $g.EnableStashStatus = $true + + $global:GitPromptSettings = $g + Remove-Variable g + } } + +if( (Get-Command -ListImported Set-PowerLinePrompt -ErrorAction Ignore) ) { + $global:PromptCache = [ordered]@{ + OSName = [SystemName]::_GetValidValues("",$true,$true) | Select-Object -First 1 + Username = @($env:USER, $env:USERNAME -ne "")[0] + Hostname = $(hostname).Trim() + } + Set-PowerLinePrompt } elseif( (Get-Command -ListImported Set-PoshPrompt -ErrorAction Ignore) -and $IsOutputANSICompatible ) { $local:poshPrompt = Join-Path $HOME ".oh-my-posh.omp.json"