Установка WindowTitle PowerShell Posh-Git - экранирование?
Я пытаюсь установить WindowTitle от Powershell (размещенный на консоли), чтобы он соответствовал выводу моего приглашения в ghp. Поэтому, если бы у меня был один измененный файл, моя подсказка выглядела бы примерно так;
[Мастер репо +0 ~1 -0]
Я хотел бы установить $Host.UI.RawUI.WindowTitle равным тому же виду вещей, но часть строки '-0', похоже, является некоторой escape-последовательностью. Если я сделаю что-то вроде этого:
$repoName = Split-Path -Leaf (Split-Path $GitStatus.GitDir)
$title = "[$repoName $($GitStatus.Branch)"
if($GitPromptSettings.EnableFileStatus -and $GitStatus.HasWorking) {
$title += " +$($GitStatus.Working.Added.Count)"
$title += " ~$($GitStatus.Working.Modified.Count)"
$title += " -$($GitStatus.Working.Deleted.Count)"
if ($GitStatus.Working.Unmerged) {
$title += " !$($GitStatus.Working.Unmerged.Count)"
}
}
$title += "]"
$Host.UI.RawUI.WindowTitle = $title
Все, что я получаю, это '-0]'. Есть какие-нибудь идеи по обеспечению экранирующего персонажа, чтобы он работал правильно?
Если я изменю символ '-' на ~, то я получу весь заголовок как:
[Репо мастер +0 ~1 ~0]
Заранее спасибо.
1 ответ
Это ошибка с Console2. Смотрите #421 Заголовки вкладок, содержащие тире, усекаются для аналогичного отчета об ошибке.
Кроме того, Dash вызывает искажение в заголовках окон, в которых говорится о проблеме, но, похоже, они еще не решили ее.
На другом хосте PowerShell код отлично работает с дефисами в заголовке.