Buggy interaction between the option `PromptText` and a prompt with shell integration in Windows Terminal 1.22.10352.0 (v 2.4.0 beta0)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
Start by reproducing the interaction with Set-PSReadLineOption using PromptText and ExtraPromptLineCount, following the prompt function and Windows Terminal shell-integration sequence in the issue. Compare behavior after a syntax error and corrected command execution. Done means PromptText is substituted without inserting spurious characters or causing shell integration to treat it as command input.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues, especially the pinned issues.
Exception report
N/A
Screenshot
Environment data
PS Version: 7.6.0-preview.4
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.4.5
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 120
BufferHeight: 24
Windows Terminal 1.23.12811.0
Steps to reproduce
- Define your
promptas follows
function prompt {
# Get error code
$LastExitStatus = $?
$LastHistoryEntry = Get-History -Count 1
$LastErrorId = $Error[0].InvocationInfo.HistoryId
$CapturedExitCode = $LastExitCode
[int]$errorCode = 0
[bool]$IsLastResultAnError = $LastErrorId -eq $LastHistoryEntry.Id
if ($LastexitStatus -eq $True) {
$errorCode = 0
}
elseif ($IsLastResultAnError) {
$errorCode = -1
}
else {
$errorCode = $CapturedExitCode
}
$p = [System.Text.StringBuilder]::new()
# Get end mark
if ($global:_lastHistoryId -ne -1) {
if ($LastHistoryEntry.Id -eq $global:_lastHistoryId) {
[void]$p.Append("`e]133;D`a")
}
else {
[void]$p.Append("`e]133;D;$errorCode`a")
}
}
$Global:_lastHistoryId = $lastHistoryEntry.Id
# Start of the prompt
[void]$p.Append("`e]133;A$([char]07)")
# Get location mark
$Location = $executionContext.SessionState.Path.CurrentLocation
if ($Location.Provider.Name -eq "FileSystem") {
[void]$p.Append("$([char]27)]9;9;`"$($Location.ProviderPath)`"$([char]27)\")
}
[void]$p.Append("PS > ")
# End of the prompt, start of the new command
[void]$p.Append("`e]133;B$([char]07)")
$p.ToString()
}
Set-PSReadlineOption -PromptText '>'; Set-PSReadlineOption -ExtraPromptLineCount 1- Write any PowerShell code, triggering a syntax error in the meantime (for instance, open a parenthesis)
- Write the command correctly, then execute
Expected behavior
The prompt text should be substituted cleanly, and not leave any spurious characters in the command line.
Actual behavior
The PromptText character is inserted into the command line, and as a consequence it is erroneously detected as part of the command by the shell integration feature.
Links
More information about the shell integration feature in Windows Terminal.
- Ngôn ngữ chính
- C#
- Star
- 4.4k
- Fork
- 341
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của PowerShell/PSReadLine
-
Needs-Triage :mag:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
PowerShell/PSReadLine#5121 ·
-
Needs-Triage :mag:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
PowerShell/PSReadLine#3470 · 3 reaction ·
Tất cả issue của PowerShell/PSReadLine
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
nightscout/nocturne#1425 ·
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
cake-build/cake#5024 ·
-
Gå gjennom ESLint-suppressions Đang mởFrontend status/draft TechnicalDebt
Độ khó 2/5 1-2 ngày Mức phù hợp với người mới 75/100
Altinn/altinn-auth#4143 ·