From bff2dde02c153c8ced8e1c6be4f0fc7edd1522ad Mon Sep 17 00:00:00 2001 From: Keith Dahlby Date: Sat, 18 Aug 2018 13:25:42 -0500 Subject: [PATCH 1/2] Set $Env:COLUMNS on prompt if necessary Git uses COLUMNS, which is not set by PowerShell, for formatting output. To account for resized windows, we'll set COLUMNS to WindowSize.Width on every prompt. Setting COLUMNS will be disabled if it's already set when posh-git loads, or by setting $GitPromptSettings.SetEnvColumns = $false. --- src/PoshGitTypes.ps1 | 1 + src/posh-git.psm1 | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/PoshGitTypes.ps1 b/src/PoshGitTypes.ps1 index 65636ebb2..a242c8c16 100644 --- a/src/PoshGitTypes.ps1 +++ b/src/PoshGitTypes.ps1 @@ -222,6 +222,7 @@ class PoshGitTextSpan { class PoshGitPromptSettings { [bool]$AnsiConsole = $Host.UI.SupportsVirtualTerminal -or ($Env:ConEmuANSI -eq "ON") + [bool]$SetEnvColumns = !(Test-Path Env:COLUMNS) [PoshGitCellColor]$DefaultColor = [PoshGitCellColor]::new() [PoshGitCellColor]$BranchColor = [PoshGitCellColor]::new([ConsoleColor]::Cyan) diff --git a/src/posh-git.psm1 b/src/posh-git.psm1 index e3e4439b3..1c360fdb4 100644 --- a/src/posh-git.psm1 +++ b/src/posh-git.psm1 @@ -40,6 +40,11 @@ $GitPromptScriptBlock = { $origLastExitCode = $global:LASTEXITCODE + if ($settings.SetEnvColumns) { + # Set COLUMNS so git knows how wide the terminal is + $Env:COLUMNS = $Host.UI.RawUI.WindowSize.Width + } + # Construct/write the prompt text $prompt = '' From a19c4386c32bc4f42eb5e2dd617a511fd1c90e69 Mon Sep 17 00:00:00 2001 From: Keith Dahlby Date: Sat, 18 Aug 2018 14:00:11 -0500 Subject: [PATCH 2/2] Always enable SetEnvColumns by default --- src/PoshGitTypes.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PoshGitTypes.ps1 b/src/PoshGitTypes.ps1 index a242c8c16..c078a1919 100644 --- a/src/PoshGitTypes.ps1 +++ b/src/PoshGitTypes.ps1 @@ -222,7 +222,7 @@ class PoshGitTextSpan { class PoshGitPromptSettings { [bool]$AnsiConsole = $Host.UI.SupportsVirtualTerminal -or ($Env:ConEmuANSI -eq "ON") - [bool]$SetEnvColumns = !(Test-Path Env:COLUMNS) + [bool]$SetEnvColumns = $true [PoshGitCellColor]$DefaultColor = [PoshGitCellColor]::new() [PoshGitCellColor]$BranchColor = [PoshGitCellColor]::new([ConsoleColor]::Cyan)