diff --git a/src/System.Management.Automation/FormatAndOutput/DefaultFormatters/PowerShellCore_format_ps1xml.cs b/src/System.Management.Automation/FormatAndOutput/DefaultFormatters/PowerShellCore_format_ps1xml.cs index 2237e05f5f7..1a26db5c6da 100644 --- a/src/System.Management.Automation/FormatAndOutput/DefaultFormatters/PowerShellCore_format_ps1xml.cs +++ b/src/System.Management.Automation/FormatAndOutput/DefaultFormatters/PowerShellCore_format_ps1xml.cs @@ -1058,7 +1058,13 @@ function Get-ConciseViewPositionMessage { $useTargetObject = $true } elseif ($myinv.ScriptName) { - $posmsg = ""${resetcolor}$($myinv.ScriptName)${newline}"" + if ($env:TERM_PROGRAM -eq 'vscode') { + # If we are running in vscode, we know the file:line:col links are clickable so we use this format + $posmsg = ""${resetcolor}$($myinv.ScriptName):$($myinv.ScriptLineNumber):$($myinv.OffsetInLine)${newline}"" + } + else { + $posmsg = ""${resetcolor}$($myinv.ScriptName):$($myinv.ScriptLineNumber)${newline}"" + } } else { $posmsg = ""${newline}"" diff --git a/test/powershell/engine/Formatting/ErrorView.Tests.ps1 b/test/powershell/engine/Formatting/ErrorView.Tests.ps1 index 500ac52ee8e..079ba94d290 100644 --- a/test/powershell/engine/Formatting/ErrorView.Tests.ps1 +++ b/test/powershell/engine/Formatting/ErrorView.Tests.ps1 @@ -32,7 +32,7 @@ Describe 'Tests for $ErrorView' -Tag CI { $testScriptPath = Join-Path -Path $TestDrive -ChildPath 'test.ps1' Set-Content -Path $testScriptPath -Value $testScript $e = { & $testScriptPath } | Should -Throw -ErrorId 'UnexpectedToken' -PassThru - $e | Out-String | Should -BeLike "*$testScriptPath*" + $e | Out-String | Should -BeLike "*${testScriptPath}:4*" # validate line number is shown $e | Out-String | Should -BeLike '* 4 *' }