11function Write-NativeCommandError {
22 [CmdletBinding ()]
33 param (
4- [System.Management.Automation.ErrorRecord ]
54 $InputObject
65 )
6+ $resetColor = ' '
7+ $errorColor = ' '
8+ $accentColor = ' '
9+
10+ if ($Host.UI.SupportsVirtualTerminal -and ([string ]::IsNullOrEmpty($env: __SuppressAnsiEscapeSequences ))) {
11+ $resetColor = " $ ( [char ]0x1b ) [0m"
12+ $errorColor = if ($PSStyle.Formatting.Error ) { $PSStyle.Formatting.Error } else { " `e [1;31m" }
13+ $accentColor = $PSStyle.Formatting.ErrorAccent
14+ }
715
816 if ($InputObject.FullyQualifiedErrorId -eq " NativeCommandErrorMessage" ) { return }
917
10- $myinv = $InputObject.InvocationInfo
11- if ($myinv -and $myinv .MyCommand ) {
12- switch - regex ( $myinv .MyCommand.CommandType ) {
18+ $invoc = $InputObject.InvocationInfo
19+ if ($invoc -and $invoc .MyCommand ) {
20+ switch - regex ( $invoc .MyCommand.CommandType ) {
1321 ([System.Management.Automation.CommandTypes ]::ExternalScript) {
14- if ($myinv .MyCommand.Path ) {
15- $myinv .MyCommand.Path + " : "
22+ if ($invoc .MyCommand.Path ) {
23+ $accentColor + $invoc .MyCommand.Path + " : " + $resetColor
1624 }
1725 break
1826 }
1927 ([System.Management.Automation.CommandTypes ]::Script) {
20- if ($myinv .MyCommand.ScriptBlock ) {
21- $myinv .MyCommand.ScriptBlock.ToString () + " : "
28+ if ($invoc .MyCommand.ScriptBlock ) {
29+ $accentColor + $invoc .MyCommand.ScriptBlock.ToString () + " : " + $resetColor
2230 }
2331 break
2432 }
2533 default {
26- if ($myinv .InvocationName -match ' ^[&\.]?$' ) {
27- if ($myinv .MyCommand.Name ) {
28- $myinv .MyCommand.Name + " : "
34+ if ($invoc .InvocationName -match ' ^[&\.]?$' ) {
35+ if ($invoc .MyCommand.Name ) {
36+ $accentColor + $invoc .MyCommand.Name + " : " + $resetColor
2937 }
3038 } else {
31- $myinv .InvocationName + " : "
39+ $accentColor + $invoc .InvocationName + " : " + $resetColor
3240 }
3341 break
3442 }
3543 }
36- } elseif ($myinv -and $myinv .InvocationName ) {
37- $myinv .InvocationName + " : "
44+ } elseif ($invoc -and $invoc .InvocationName ) {
45+ $accentColor + $invoc .InvocationName + " : " + $resetColor
3846 }
3947}
0 commit comments