From bafe2b2a321155a68bc7c8f74ee336808fe39b3b Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:53:40 -0700 Subject: [PATCH 01/41] Added RFC Error View --- 1-Draft/RFC00XX-Update-Error-View.md | 157 +++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 1-Draft/RFC00XX-Update-Error-View.md diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md new file mode 100644 index 00000000..f6b92240 --- /dev/null +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -0,0 +1,157 @@ +--- +RFC: Update $ErrorView with Single String Error Messages +Author: Jason Helmick +Status: Draft +Version: 0.0.0 +Area: PowerShell +Comments Due: +--- + +# Update $ErrorView with Single Line Error Messages + +When an error occurs in PowerShell, the customers on-screen error message experience currently +provides a level of detail that obscures the inner exception message from being read by +new or occasional PowerShell users. +To improve both comprehension and the troubleshooting experience, a single string of text +containing the error will be displayed. A cmdlet will provide the full error details when desired. + +## Motivation + +The on-screen experience, when receiving an error message, +is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +The addition of a “ConciseView” as default that contains only specific error +information producing a single line on screen and in logs will improve customer success. + +Comprehensive error information is available to the customer through +accessing the error object. For new and occasional customers, +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. + +## Specification + +The proposal is to add a new single-line default error message view called ConciseView +and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. + +__Key Design Considerations__ + +1. To reduce confusion and improve debugging success, +error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". + +- $ErrorView should contain these views + + + NormalView + + CategoryView + + ConciseView + +- Error Message syntax for ConciseView + +```powershell +ERROR: : +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` + +2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. + +- Resolve-ErrorRecord will provide the following: + + + Display Last Error ($Error[0]) – default behavior + + Accept Pipeline input – support $error[1] | + + Option for the first X errors in the session + + Option for the Last X errors in the session + +- Resolve-ErrorRecord syntax + +```powershell +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +``` + +First parameter set + +- Newest + + + Datatype: int32 + + specifies one or more of last errors to display + + Not required + +- First + + + Datatype: Int32 + + Specifies one or more of the first errors that occurred + + Not required + +- All + + + Datatype: Switch + + Specifies display all errors in session + + Not required + +Examples + +```powershell +# Displays details of the last error displayed +Resolve-ErrorRecord + +# Displays error details from pipeline error object +$error[1] | Resolve-ErrorRecord + +# Display detailed error information for the last 5 errors +Resolve-ErrorRecord -Last 5 + +# Display detailed error information for the first 3 errors +Resolve-ErrorRecord -First 3 + +# Display detailed information for all errors that occured in the session +Resolve-ErrorRecord -All +``` +__Example 1__ + +```powershell +PS C:\test> Get-item c:\blah +Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 + +PS C:\test> Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does + not exist. + at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + +``` + +__Example 2__ + +```powershell +PS C:\test> slkjdfh +ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 +PS C:\test> $error[0] | Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as +``` + +## Alternate Proposals and Considerations + +__Alternative single-line display__ + +```powershell +: +get-item: Cannot find path ‘C:\blah’ because it does not exist: + +:: +get-item: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +::: +get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist + +ERROR:: +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR:::: +ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` +__Alternative color for all errors__ + +1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file From bdd3ee980aac822b0650e3f64bf24da089c1ad32 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:58:23 -0700 Subject: [PATCH 02/41] update RFC error view --- 1-Draft/RFC00XX-Update-Error-View.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index f6b92240..3bc13e54 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -154,4 +154,6 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A ``` __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file +1. We could change the default error message color from the current RED foreground and BLACK background to... +2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. +For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From dd58c1119c42b27c64cc4f64d9e0105a6fe7579a Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 13:34:44 -0700 Subject: [PATCH 03/41] Added shorter reference code --- 1-Draft/RFC00XX-Update-Error-View.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 3bc13e54..c020d37d 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -152,8 +152,29 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: ERROR:::: ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 ``` + __Alternative color for all errors__ 1. We could change the default error message color from the current RED foreground and BLACK background to... 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. + +__Alternative For Error, Warning, Verbose__ + +1. We could be more terse in our messages and increase consistency with verbose and warning messages by using a single letter to identify the message. + +Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal + +```powershell +V: You are running your code - what could possibly go wrong. + +W: You are about to try something that probably won't work. + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +F: Now you really broke me. At line:1 char:1 +``` From d3ed69468a36f424a72ba3a59a3c7a962c41f838 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 14:15:06 -0700 Subject: [PATCH 04/41] update alternate view --- 1-Draft/RFC00XX-Update-Error-View.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index c020d37d..5064bbc0 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -7,7 +7,7 @@ Area: PowerShell Comments Due: --- -# Update $ErrorView with Single Line Error Messages +# Update $ErrorView with Single String Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the inner exception message from being read by @@ -168,13 +168,14 @@ Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal ```powershell V: You are running your code - what could possibly go wrong. -W: You are about to try something that probably won't work. +W: You are about to try something that probably will not work. -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 F: Now you really broke me. At line:1 char:1 + ``` From 5fd9c69a379d315a399d301813ac9376a4383dd8 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:53:40 -0700 Subject: [PATCH 05/41] Added RFC Error View --- 1-Draft/RFC00XX-Update-Error-View.md | 157 +++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 1-Draft/RFC00XX-Update-Error-View.md diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md new file mode 100644 index 00000000..f6b92240 --- /dev/null +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -0,0 +1,157 @@ +--- +RFC: Update $ErrorView with Single String Error Messages +Author: Jason Helmick +Status: Draft +Version: 0.0.0 +Area: PowerShell +Comments Due: +--- + +# Update $ErrorView with Single Line Error Messages + +When an error occurs in PowerShell, the customers on-screen error message experience currently +provides a level of detail that obscures the inner exception message from being read by +new or occasional PowerShell users. +To improve both comprehension and the troubleshooting experience, a single string of text +containing the error will be displayed. A cmdlet will provide the full error details when desired. + +## Motivation + +The on-screen experience, when receiving an error message, +is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +The addition of a “ConciseView” as default that contains only specific error +information producing a single line on screen and in logs will improve customer success. + +Comprehensive error information is available to the customer through +accessing the error object. For new and occasional customers, +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. + +## Specification + +The proposal is to add a new single-line default error message view called ConciseView +and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. + +__Key Design Considerations__ + +1. To reduce confusion and improve debugging success, +error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". + +- $ErrorView should contain these views + + + NormalView + + CategoryView + + ConciseView + +- Error Message syntax for ConciseView + +```powershell +ERROR: : +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` + +2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. + +- Resolve-ErrorRecord will provide the following: + + + Display Last Error ($Error[0]) – default behavior + + Accept Pipeline input – support $error[1] | + + Option for the first X errors in the session + + Option for the Last X errors in the session + +- Resolve-ErrorRecord syntax + +```powershell +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +``` + +First parameter set + +- Newest + + + Datatype: int32 + + specifies one or more of last errors to display + + Not required + +- First + + + Datatype: Int32 + + Specifies one or more of the first errors that occurred + + Not required + +- All + + + Datatype: Switch + + Specifies display all errors in session + + Not required + +Examples + +```powershell +# Displays details of the last error displayed +Resolve-ErrorRecord + +# Displays error details from pipeline error object +$error[1] | Resolve-ErrorRecord + +# Display detailed error information for the last 5 errors +Resolve-ErrorRecord -Last 5 + +# Display detailed error information for the first 3 errors +Resolve-ErrorRecord -First 3 + +# Display detailed information for all errors that occured in the session +Resolve-ErrorRecord -All +``` +__Example 1__ + +```powershell +PS C:\test> Get-item c:\blah +Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 + +PS C:\test> Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does + not exist. + at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + +``` + +__Example 2__ + +```powershell +PS C:\test> slkjdfh +ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 +PS C:\test> $error[0] | Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as +``` + +## Alternate Proposals and Considerations + +__Alternative single-line display__ + +```powershell +: +get-item: Cannot find path ‘C:\blah’ because it does not exist: + +:: +get-item: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +::: +get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist + +ERROR:: +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR:::: +ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` +__Alternative color for all errors__ + +1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file From 3dd0560dad5f26ab11e8fb52c2fb06f5e747c6f9 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:58:23 -0700 Subject: [PATCH 06/41] update RFC error view --- 1-Draft/RFC00XX-Update-Error-View.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index f6b92240..3bc13e54 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -154,4 +154,6 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A ``` __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file +1. We could change the default error message color from the current RED foreground and BLACK background to... +2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. +For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From a7d6a758493940da2c392c5e2bd59e9002401b38 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 13:34:44 -0700 Subject: [PATCH 07/41] Added shorter reference code --- 1-Draft/RFC00XX-Update-Error-View.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 3bc13e54..c020d37d 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -152,8 +152,29 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: ERROR:::: ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 ``` + __Alternative color for all errors__ 1. We could change the default error message color from the current RED foreground and BLACK background to... 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. + +__Alternative For Error, Warning, Verbose__ + +1. We could be more terse in our messages and increase consistency with verbose and warning messages by using a single letter to identify the message. + +Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal + +```powershell +V: You are running your code - what could possibly go wrong. + +W: You are about to try something that probably won't work. + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +F: Now you really broke me. At line:1 char:1 +``` From 6faa7dc7c51a949d8eaf594bb2f36201ef98b335 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 14:15:06 -0700 Subject: [PATCH 08/41] update alternate view --- 1-Draft/RFC00XX-Update-Error-View.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index c020d37d..5064bbc0 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -7,7 +7,7 @@ Area: PowerShell Comments Due: --- -# Update $ErrorView with Single Line Error Messages +# Update $ErrorView with Single String Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the inner exception message from being read by @@ -168,13 +168,14 @@ Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal ```powershell V: You are running your code - what could possibly go wrong. -W: You are about to try something that probably won't work. +W: You are about to try something that probably will not work. -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 F: Now you really broke me. At line:1 char:1 + ``` From c45436671f135ba13dfafe53d881a1395ddd8d93 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 7 Aug 2019 11:19:39 -0700 Subject: [PATCH 09/41] updated comment due date on Error-View --- 1-Draft/RFC00XX-Update-Error-View.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 5064bbc0..12786951 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -4,7 +4,8 @@ Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: +Comments Due: 08/31/2019 +Plan to implement: Yes --- # Update $ErrorView with Single String Error Messages From fb60588b64b9e95e6d8adeda37150f75ef51a95a Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 26 Aug 2019 12:00:45 -0700 Subject: [PATCH 10/41] Update 1-Draft/RFC00XX-Update-Error-View.md Co-Authored-By: Steve Lee --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 12786951..53c28b87 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -19,7 +19,7 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the existing preference variable `$ErrorView`. The addition of a “ConciseView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. From f4edfcdcf82e933d3aa77606308bd3ad1d976ed0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 26 Aug 2019 12:55:09 -0700 Subject: [PATCH 11/41] review update for view name -simpleview --- 1-Draft/RFC00XX-Update-Error-View.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 12786951..4770592e 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,7 +20,7 @@ containing the error will be displayed. A cmdlet will provide the full error de The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. -The addition of a “ConciseView” as default that contains only specific error +The addition of a “SimpleView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through @@ -29,21 +29,28 @@ a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed ## Specification -The proposal is to add a new single-line default error message view called ConciseView +The proposal is to add a new single-line default error message view called SimpleView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". +error messages, by default using WriteErrorLine, should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". Conditionally, positional information will be added if from a script. - $ErrorView should contain these views + NormalView + CategoryView - + ConciseView + + SimpleView -- Error Message syntax for ConciseView +- From Interactive: Error Message syntax for SimpleView + +```powershell +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist: +``` + +- From Script: Error Message syntax for SimpleView ```powershell ERROR: : From 0641bb2e82d35cb916ff827b5c35a92b49f5ef8d Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 3 Sep 2019 13:15:31 -0700 Subject: [PATCH 12/41] fix unresolved merge conflict --- 1-Draft/RFC00XX-Update-Error-View.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 605e5f25..d508ca5c 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -19,13 +19,8 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -<<<<<<< HEAD -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the existing preference variable `$ErrorView`. The addition of a “SimpleView” as default that contains only specific error -======= -is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the existing preference variable `$ErrorView`. -The addition of a “ConciseView” as default that contains only specific error ->>>>>>> fb60588b64b9e95e6d8adeda37150f75ef51a95a information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through From 8dabf42f0a063f7968f124b5d426a506d513a831 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 3 Sep 2019 13:31:46 -0700 Subject: [PATCH 13/41] Removed incorrect parameter -Oldest --- 1-Draft/RFC00XX-Update-Error-View.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index d508ca5c..389869d4 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -63,13 +63,12 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: + Display Last Error ($Error[0]) – default behavior + Accept Pipeline input – support $error[1] | - + Option for the first X errors in the session - + Option for the Last X errors in the session + + Option for the Newest X errors in the session - Resolve-ErrorRecord syntax ```powershell -Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-All] [] ``` First parameter set @@ -80,12 +79,6 @@ First parameter set + specifies one or more of last errors to display + Not required -- First - - + Datatype: Int32 - + Specifies one or more of the first errors that occurred - + Not required - - All + Datatype: Switch From 35ed896c1e128e0e451df4abddce99e9768e7d48 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 23 Sep 2019 11:23:08 -0700 Subject: [PATCH 14/41] errorview-removed unneeded parameters --- 1-Draft/RFC00XX-Update-Error-View.md | 47 ++++++++++------------------ 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 5064bbc0..7f8873b1 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -4,7 +4,7 @@ Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: +Comments Due: --- # Update $ErrorView with Single String Error Messages @@ -18,13 +18,15 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +is controlled through the views NormalView (the default) and CategoryView. These are user selectable +through the preference variable $ErrorView. The addition of a “ConciseView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through accessing the error object. For new and occasional customers, -a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, +improving customers success. ## Specification @@ -34,19 +36,21 @@ and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". +error messages by default should produce a single line of text, including the word “ERROR:” +to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". - $ErrorView should contain these views + NormalView + CategoryView + ConciseView + + DetailedView - Error Message syntax for ConciseView ```powershell -ERROR: : -ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist ``` 2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. @@ -55,13 +59,12 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: + Display Last Error ($Error[0]) – default behavior + Accept Pipeline input – support $error[1] | - + Option for the first X errors in the session - + Option for the Last X errors in the session + + Option for the Newest X errors in the session - Resolve-ErrorRecord syntax ```powershell -Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-All] [] ``` First parameter set @@ -72,18 +75,6 @@ First parameter set + specifies one or more of last errors to display + Not required -- First - - + Datatype: Int32 - + Specifies one or more of the first errors that occurred - + Not required - -- All - - + Datatype: Switch - + Specifies display all errors in session - + Not required - Examples ```powershell @@ -93,15 +84,9 @@ Resolve-ErrorRecord # Displays error details from pipeline error object $error[1] | Resolve-ErrorRecord -# Display detailed error information for the last 5 errors -Resolve-ErrorRecord -Last 5 +# Display detailed error information for the most recent 3 errors +Resolve-ErrorRecord -Newest 3 -# Display detailed error information for the first 3 errors -Resolve-ErrorRecord -First 3 - -# Display detailed information for all errors that occured in the session -Resolve-ErrorRecord -All -``` __Example 1__ ```powershell @@ -114,7 +99,7 @@ PSMessageDetails : Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does not exist. at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean - allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider ``` @@ -155,7 +140,7 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... +1. We could change the default error message color from the current RED foreground and BLACK background to ?. 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From 5cf273df899181e7e280892730df328cb1027c16 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 23 Sep 2019 12:10:02 -0700 Subject: [PATCH 15/41] Errorview update to remove unneeded parameters --- 1-Draft/RFC00XX-Update-Error-View.md | 50 ++++++++++------------------ 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 389869d4..7f8873b1 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -4,8 +4,7 @@ Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: 08/31/2019 -Plan to implement: Yes +Comments Due: --- # Update $ErrorView with Single String Error Messages @@ -19,42 +18,39 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the existing preference variable `$ErrorView`. -The addition of a “SimpleView” as default that contains only specific error +is controlled through the views NormalView (the default) and CategoryView. These are user selectable +through the preference variable $ErrorView. +The addition of a “ConciseView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through accessing the error object. For new and occasional customers, -a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, +improving customers success. ## Specification -The proposal is to add a new single-line default error message view called SimpleView +The proposal is to add a new single-line default error message view called ConciseView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages, by default using WriteErrorLine, should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". Conditionally, positional information will be added if from a script. +error messages by default should produce a single line of text, including the word “ERROR:” +to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". - $ErrorView should contain these views + NormalView + CategoryView - + SimpleView + + ConciseView + + DetailedView -- From Interactive: Error Message syntax for SimpleView +- Error Message syntax for ConciseView ```powershell ERROR: -ERROR: Cannot find path ‘C:\blah’ because it does not exist: -``` - -- From Script: Error Message syntax for SimpleView - -```powershell -ERROR: : -ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +ERROR: Cannot find path ‘C:\blah’ because it does not exist ``` 2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. @@ -79,12 +75,6 @@ First parameter set + specifies one or more of last errors to display + Not required -- All - - + Datatype: Switch - + Specifies display all errors in session - + Not required - Examples ```powershell @@ -94,15 +84,9 @@ Resolve-ErrorRecord # Displays error details from pipeline error object $error[1] | Resolve-ErrorRecord -# Display detailed error information for the last 5 errors -Resolve-ErrorRecord -Last 5 +# Display detailed error information for the most recent 3 errors +Resolve-ErrorRecord -Newest 3 -# Display detailed error information for the first 3 errors -Resolve-ErrorRecord -First 3 - -# Display detailed information for all errors that occured in the session -Resolve-ErrorRecord -All -``` __Example 1__ ```powershell @@ -115,7 +99,7 @@ PSMessageDetails : Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does not exist. at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean - allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider ``` @@ -156,7 +140,7 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... +1. We could change the default error message color from the current RED foreground and BLACK background to ?. 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From 07af6d2033a71a92b055b20d0de769f95b519fc5 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 08:12:58 -0700 Subject: [PATCH 16/41] Changed view name from Concise to SimpleView --- 1-Draft/RFC00XX-Update-Error-View.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 7f8873b1..7197bda3 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,7 +20,7 @@ containing the error will be displayed. A cmdlet will provide the full error de The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -The addition of a “ConciseView” as default that contains only specific error +The addition of a “SimpleView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through @@ -30,23 +30,23 @@ improving customers success. ## Specification -The proposal is to add a new single-line default error message view called ConciseView +The proposal is to add a new single-line default error message view called SimpleView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, error messages by default should produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". +to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". - $ErrorView should contain these views + NormalView + CategoryView - + ConciseView + + SimpleView + DetailedView -- Error Message syntax for ConciseView +- Error Message syntax for SimpleView ```powershell ERROR: From da03165715a555e22127c9f56eb562b1bd7670e2 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 08:23:44 -0700 Subject: [PATCH 17/41] Added WriteErrorLine clarification --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 7197bda3..90512c05 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -36,7 +36,7 @@ and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages by default should produce a single line of text, including the word “ERROR:” +error messages should call WriteErrorLine to produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". - $ErrorView should contain these views From 8cdd56a02732109fd159adcf9336fefb444f36c0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 10:31:25 -0700 Subject: [PATCH 18/41] Added example showing Inner exception --- 1-Draft/RFC00XX-Update-Error-View.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 90512c05..b81d3460 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -75,7 +75,7 @@ First parameter set + specifies one or more of last errors to display + Not required -Examples +__Example__ ```powershell # Displays details of the last error displayed @@ -86,12 +86,14 @@ $error[1] | Resolve-ErrorRecord # Display detailed error information for the most recent 3 errors Resolve-ErrorRecord -Newest 3 +``` __Example 1__ +SimpleView of Error message. Resolve-ErrorRecord shows sample DetailedView ```powershell PS C:\test> Get-item c:\blah -Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 +ERROR: Cannot find path 'C:\blah' because it does not exist. PS C:\test> Resolve-ErrorRecord @@ -104,14 +106,29 @@ Exception : System.Management.Automation.ItemNotFoundException: Cann ``` __Example 2__ +SimpleView of Error message. Piped error to Resolve-ErrorRecord shows sample DetailedView ```powershell PS C:\test> slkjdfh -ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 +ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. PS C:\test> $error[0] | Resolve-ErrorRecord PSMessageDetails : -Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as +Exception : System.Management.Automation.CommandNotFoundException: + The term 'slkjdfh' is not recognized as +``` + +__Example 3__ +SimpleView of Inner exception if present. Sample of Resolve-ErrorRecord to provide DetailedView. + +```powershell +PS> [System.Net.DNS]::GetHostByName('NoOnline') +ERROR: No such host is known. + +PS>Resolve-ErrorRecord -Newest 1 +Exception calling "GetHostByName" with "1" argument(s): +"No such host is known." +At line:1 char:1 ``` ## Alternate Proposals and Considerations From 6de0c3edc89df3eba276cdcbfad1e388f3bdd103 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 15:41:46 -0700 Subject: [PATCH 19/41] updated normal and detailed view --- 1-Draft/RFC00XX-Update-Error-View.md | 112 +++++++++++++-------------- 1 file changed, 54 insertions(+), 58 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index b81d3460..2d7f2d28 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -10,50 +10,61 @@ Comments Due: # Update $ErrorView with Single String Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently -provides a level of detail that obscures the inner exception message from being read by +provides a level of detail that obscures the exception message from being recognized and read by new or occasional PowerShell users. -To improve both comprehension and the troubleshooting experience, a single string of text -containing the error will be displayed. A cmdlet will provide the full error details when desired. +To improve both comprehension and the troubleshooting experience, +a simplified conditional error message will be provided determined by +Interactive or Script use. A cmdlet will provide the full error details when desired. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -The addition of a “SimpleView” as default that contains only specific error -information producing a single line on screen and in logs will improve customer success. - -Comprehensive error information is available to the customer through -accessing the error object. For new and occasional customers, -a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, -improving customers success. +This RFC describes changing the NormalView to a simplified conditional error message. The +CategoryView should remain unchanged. +A comprehensive detailed view of the fully qualified error, including inner exceptions, +will be provided by the `Resolve-ErrorRecord` cmdlet. ## Specification -The proposal is to add a new single-line default error message view called SimpleView -and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. +The proposal is to modify NormalView to a simplified conditional error message +based on interactive versus script use. +For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages should call WriteErrorLine to produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". +error messages should call WriteErrorLine to produce a simplified message, including the word “ERROR:” +to make consistent with Verbose and Warning messages. This is a change to the existing NormalView. -- $ErrorView should contain these views +- $ErrorView can refer to these views + NormalView + CategoryView - + SimpleView - + DetailedView -- Error Message syntax for SimpleView +- Simplified error message syntax from Interactive. ```powershell -ERROR: -ERROR: Cannot find path ‘C:\blah’ because it does not exist +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist ``` -2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. +- Simplified error message from Script. (note-colorization is not displayed correctly) + +```powershell +PS C:\> .\MyScript.ps1 +ERROR: Cannot find path 'C:\notreal' because it does not exist. + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additonal help information +``` + +2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed +view of the fully qualified error, including inner exceptions. - Resolve-ErrorRecord will provide the following: @@ -75,60 +86,45 @@ First parameter set + specifies one or more of last errors to display + Not required -__Example__ - -```powershell -# Displays details of the last error displayed -Resolve-ErrorRecord - -# Displays error details from pipeline error object -$error[1] | Resolve-ErrorRecord - -# Display detailed error information for the most recent 3 errors -Resolve-ErrorRecord -Newest 3 -``` - __Example 1__ -SimpleView of Error message. Resolve-ErrorRecord shows sample DetailedView +Error occurs in Interactive mode. Cmdlet displays details of the last error displayed ```powershell -PS C:\test> Get-item c:\blah -ERROR: Cannot find path 'C:\blah' because it does not exist. +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist PS C:\test> Resolve-ErrorRecord -PSMessageDetails : -Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does - not exist. - at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean - allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider - +**** Detailed message here **** ``` __Example 2__ -SimpleView of Error message. Piped error to Resolve-ErrorRecord shows sample DetailedView +Error occurs in Script. Cmdlet displays error details from pipeline error object ```powershell -PS C:\test> slkjdfh -ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. -PS C:\test> $error[0] | Resolve-ErrorRecord - -PSMessageDetails : -Exception : System.Management.Automation.CommandNotFoundException: - The term 'slkjdfh' is not recognized as +PS C:\> .\MyScript.ps1 +ERROR: Cannot find path 'C:\notreal' because it does not exist. + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additonal help information + +PS C:\> $error[0] | Resolve-ErrorRecord + +**** Detailed message here **** ``` __Example 3__ -SimpleView of Inner exception if present. Sample of Resolve-ErrorRecord to provide DetailedView. +Display detailed error information for the most recent 3 errors. ```powershell -PS> [System.Net.DNS]::GetHostByName('NoOnline') -ERROR: No such host is known. +PS C:\> Resolve-ErrorRecord -Newest 3 -PS>Resolve-ErrorRecord -Newest 1 -Exception calling "GetHostByName" with "1" argument(s): -"No such host is known." -At line:1 char:1 +**** Detailed message here **** +**** Detailed message here **** +**** Detailed message here **** ``` ## Alternate Proposals and Considerations From 697327cbb4cab36bffd5a174949b0cdfc62b1cb0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 08:25:25 -0700 Subject: [PATCH 20/41] added image of new error view --- 1-Draft/RFC00XX-Update-Error-View.png | Bin 0 -> 38646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 1-Draft/RFC00XX-Update-Error-View.png diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png new file mode 100644 index 0000000000000000000000000000000000000000..a769d8d104a4fa2ff312b348eb4423620eccdc6d GIT binary patch literal 38646 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

^}tGV);`sP8r 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 Date: Wed, 25 Sep 2019 08:33:36 -0700 Subject: [PATCH 21/41] Added image of errorview and adjusted carets --- 1-Draft/RFC00XX-Update-Error-View.md | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 2d7f2d28..a40d9454 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -43,25 +43,9 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView -- Simplified error message syntax from Interactive. +- Simplified error message syntax from Interactive and script. -```powershell -PS C:\> Get-Childitem -Path c:\notreal -ERROR: Cannot find path ‘C:\notreal’ because it does not exist -``` - -- Simplified error message from Script. (note-colorization is not displayed correctly) - -```powershell -PS C:\> .\MyScript.ps1 -ERROR: Cannot find path 'C:\notreal' because it does not exist. - ---> C:\GitHub\pri-errorview\RustTest\test.ps1 - | -15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. - | - * Help: this is for additonal help information -``` +![test](.\RFC00XX-Update-Error-View.png) 2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed view of the fully qualified error, including inner exceptions. From 889cad43c13dd224baeb54364b393f2a57950084 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 08:38:51 -0700 Subject: [PATCH 22/41] Spelling correction --- 1-Draft/RFC00XX-Update-Error-View.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index a40d9454..c6679072 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -91,9 +91,9 @@ ERROR: Cannot find path 'C:\notreal' because it does not exist. ---> C:\GitHub\pri-errorview\RustTest\test.ps1 | 15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | ^^^ Cannot find path 'C:\notreal' because it does not exist. | - * Help: this is for additonal help information + * Help: this is for additional help information PS C:\> $error[0] | Resolve-ErrorRecord From 9439d35c084a64ad32980c3aa706a431459a1833 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 11:55:55 -0700 Subject: [PATCH 23/41] Updated graphic display of error messages --- 1-Draft/RFC00XX-Update-Error-View.md | 22 +++++++++++++++++++++- 1-Draft/RFC00XX-Update-Error-View.png | Bin 38646 -> 37079 bytes 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index c6679072..699e48ba 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -43,7 +43,27 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView -- Simplified error message syntax from Interactive and script. +- Simplified error message syntax from Interactive and script. (See graphic below) + +```powershell +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist +``` + +```powershell +PS C:\> .\MyScript.ps1 +ERROR: ItemNotFoundException + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additional help information + +PS C:\> $error[0] | Resolve-ErrorRecord + +**** Detailed message here **** +``` ![test](.\RFC00XX-Update-Error-View.png) diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index a769d8d104a4fa2ff312b348eb4423620eccdc6d..e837c89f19c868e919db4b0dfdb5d8d0cf28891e 100644 GIT binary patch literal 37079 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

^}tGV);`sP8r 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 Date: Wed, 25 Sep 2019 12:08:10 -0700 Subject: [PATCH 24/41] graphic update --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 699e48ba..daaca38d 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -107,7 +107,7 @@ Error occurs in Script. Cmdlet displays error details from pipeline error object ```powershell PS C:\> .\MyScript.ps1 -ERROR: Cannot find path 'C:\notreal' because it does not exist. +ERROR: ItemNotFoundException ---> C:\GitHub\pri-errorview\RustTest\test.ps1 | 15 | Get-ChildItem -Path c:\notreal From 1f272cd53de418ff185e39b8e289e7aa264e0f3c Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 14:38:45 -0700 Subject: [PATCH 25/41] edits to Overview --- 1-Draft/RFC00XX-Update-Error-View.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index daaca38d..92091c19 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -11,24 +11,33 @@ Comments Due: When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the exception message from being recognized and read by -new or occasional PowerShell users. -To improve both comprehension and the troubleshooting experience, -a simplified conditional error message will be provided determined by -Interactive or Script use. A cmdlet will provide the full error details when desired. +new or occasional PowerShell users. The addition of simplified error views will improve both +comprehension and troubleshooting experience. + +Advanced PowerShell users and scripters will benefit from a newly designed 'AnalyticalView' that +focuses on the specific location, code reference and error information from the script. + +Both user types will benefit from a combined 'DynamicView' that switches between +'MessageView' and 'AnalyticalView' based on the source of execution; +Command-line versus script. + +In all the above scenarios, regardless of error view selected, A comprehensive +detailed view of the fully qualified error, including inner exceptions, +will be provided by the `Resolve-ErrorRecord` cmdlet. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -This RFC describes changing the NormalView to a simplified conditional error message. The -CategoryView should remain unchanged. +This RFC describes adding three additional views to improve readability. The +'MessageView', 'AnalyticalView', and 'DynamicView'. A comprehensive detailed view of the fully qualified error, including inner exceptions, will be provided by the `Resolve-ErrorRecord` cmdlet. ## Specification -The proposal is to modify NormalView to a simplified conditional error message +The proposal is to add three new views to a simplified conditional error message based on interactive versus script use. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. @@ -42,6 +51,9 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView + + MessageView + + AnalyticalView + + DynamicView - Simplified error message syntax from Interactive and script. (See graphic below) From a58d4e8e09dc1fd49450373a46fa709c0b170464 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 26 Sep 2019 10:43:43 -0700 Subject: [PATCH 26/41] update $errorview to enum --- 1-Draft/RFC00XX-Update-Error-View.md | 88 ++++++++++++++------------ 1-Draft/RFC00XX-Update-Error-View.png | Bin 37079 -> 40639 bytes 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 92091c19..52918b63 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -1,67 +1,67 @@ --- -RFC: Update $ErrorView with Single String Error Messages +RFC: Update $ErrorView with simplified views for Error Messages Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: +Comments Due: 10/31/2019 --- -# Update $ErrorView with Single String Error Messages +# Update $ErrorView with simplified views for Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the exception message from being recognized and read by -new or occasional PowerShell users. The addition of simplified error views will improve both -comprehension and troubleshooting experience. - -Advanced PowerShell users and scripters will benefit from a newly designed 'AnalyticalView' that -focuses on the specific location, code reference and error information from the script. - -Both user types will benefit from a combined 'DynamicView' that switches between -'MessageView' and 'AnalyticalView' based on the source of execution; -Command-line versus script. - -In all the above scenarios, regardless of error view selected, A comprehensive -detailed view of the fully qualified error, including inner exceptions, -will be provided by the `Resolve-ErrorRecord` cmdlet. +new or occasional PowerShell users. The addition of a simplified error view will improve both +comprehension and troubleshooting experience. A new cmdlet 'Resolve-ErrorRecord' will provide +complete detailed view of the fully qualified error when desired. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -This RFC describes adding three additional views to improve readability. The -'MessageView', 'AnalyticalView', and 'DynamicView'. +This RFC describes Changing '$ErrorView to an enumeration and adding three additional views +to improve readability,'Message', 'Analytic', and 'Dynamic'. + +- Message - provides a concise error message suitable for new or occasional PowerShell users. +- Analytic - provides a refactored form of NormalView +- Dynamic - provides conditional switching between Message and Analytic. + A comprehensive detailed view of the fully qualified error, including inner exceptions, will be provided by the `Resolve-ErrorRecord` cmdlet. -## Specification +'$ErrorView' shall contain the original views for backward compatibility and renamed +to remove 'view' from the name. The view list is as follows: -The proposal is to add three new views to a simplified conditional error message -based on interactive versus script use. -For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. +- Normal +- Category +- Message +- Analytic +- Dynamic -__Key Design Considerations__ +## Specification -1. To reduce confusion and improve debugging success, -error messages should call WriteErrorLine to produce a simplified message, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is a change to the existing NormalView. +The proposal is to add three new views to help improve error message comprehension based on user +needs. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` +to provide detailed error information. -- $ErrorView can refer to these views +__Key Design Considerations__ - + NormalView - + CategoryView - + MessageView - + AnalyticalView - + DynamicView +1. To reduce confusion and improve debugging success for new and occasional users, +error messages should call WriteErrorLine to produce a simplified message using view 'Message' +and include the preface word “ERROR:” -- Simplified error message syntax from Interactive and script. (See graphic below) +- Simplified error message syntax from 'Message'. (See graphic below) ```powershell PS C:\> Get-Childitem -Path c:\notreal ERROR: Cannot find path ‘C:\notreal’ because it does not exist ``` +2. To improve script debugging for advanced PowerShell users and scripters, +a refactored error view 'Analytic' will be added displaying the error category, +exception, code line and position, and include additional help for the user. + ```powershell PS C:\> .\MyScript.ps1 ERROR: ItemNotFoundException @@ -70,17 +70,20 @@ ERROR: ItemNotFoundException 15 | Get-ChildItem -Path c:\notreal | ^^^ Cannot find path 'C:\notreal' because it does not exist. | - * Help: this is for additional help information + * Help: Additional help information provided here +``` -PS C:\> $error[0] | Resolve-ErrorRecord +3. The 'Dynamic' view is a combination of the views 'message' and 'Analytic' for users working +in the console that also run scripts. When the user is working Interactively in the CLI, +they will receive errors in the view of 'Message'. When the user executes a script, +errors will use the view 'Analytic'. -**** Detailed message here **** -``` +- An example is in the image below: -![test](.\RFC00XX-Update-Error-View.png) +![Message and Analytic](.\RFC00XX-Update-Error-View.png) -2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed -view of the fully qualified error, including inner exceptions. +4. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed +view of the fully qualified error, including nested inner exceptions. - Resolve-ErrorRecord will provide the following: @@ -99,7 +102,7 @@ First parameter set - Newest + Datatype: int32 - + specifies one or more of last errors to display + + specifies one or more of the newest errors to display + Not required __Example 1__ @@ -115,7 +118,8 @@ PS C:\test> Resolve-ErrorRecord ``` __Example 2__ -Error occurs in Script. Cmdlet displays error details from pipeline error object +Error occurs in script, shows error from view 'Analytic', and then is piped +from $error array to 'Resolve-ErrorRecord' to display more details. ```powershell PS C:\> .\MyScript.ps1 diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index e837c89f19c868e919db4b0dfdb5d8d0cf28891e..48ba682ac577e178bc6b479f1dc36d8d47795d6a 100644 GIT binary patch literal 40639 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 Date: Thu, 26 Sep 2019 10:56:24 -0700 Subject: [PATCH 27/41] spelling corrections --- 1-Draft/RFC00XX-Update-Error-View.md | 101 --------------------------- 1 file changed, 101 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index db14082f..52918b63 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,17 +20,8 @@ complete detailed view of the fully qualified error when desired. The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -<<<<<<< HEAD -<<<<<<< HEAD -The addition of a “ConciseView” as default that contains only specific error -======= -The addition of a “SimpleView” as default that contains only specific error ->>>>>>> Error-View -information producing a single line on screen and in logs will improve customer success. -======= This RFC describes Changing '$ErrorView to an enumeration and adding three additional views to improve readability,'Message', 'Analytic', and 'Dynamic'. ->>>>>>> Error-View - Message - provides a concise error message suitable for new or occasional PowerShell users. - Analytic - provides a refactored form of NormalView @@ -50,25 +41,6 @@ to remove 'view' from the name. The view list is as follows: ## Specification -<<<<<<< HEAD -<<<<<<< HEAD -The proposal is to add a new single-line default error message view called ConciseView -======= -The proposal is to add a new single-line default error message view called SimpleView ->>>>>>> Error-View -and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. - -__Key Design Considerations__ - -1. To reduce confusion and improve debugging success, -<<<<<<< HEAD -error messages by default should produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". -======= -error messages should call WriteErrorLine to produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". ->>>>>>> Error-View -======= The proposal is to add three new views to help improve error message comprehension based on user needs. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. @@ -78,25 +50,9 @@ __Key Design Considerations__ 1. To reduce confusion and improve debugging success for new and occasional users, error messages should call WriteErrorLine to produce a simplified message using view 'Message' and include the preface word “ERROR:” ->>>>>>> Error-View - Simplified error message syntax from 'Message'. (See graphic below) -<<<<<<< HEAD - + NormalView - + CategoryView -<<<<<<< HEAD - + ConciseView - + DetailedView - -- Error Message syntax for ConciseView -======= - + SimpleView - + DetailedView - -- Error Message syntax for SimpleView ->>>>>>> Error-View -======= ```powershell PS C:\> Get-Childitem -Path c:\notreal ERROR: Cannot find path ‘C:\notreal’ because it does not exist @@ -105,7 +61,6 @@ ERROR: Cannot find path ‘C:\notreal’ because it does not exist 2. To improve script debugging for advanced PowerShell users and scripters, a refactored error view 'Analytic' will be added displaying the error category, exception, code line and position, and include additional help for the user. ->>>>>>> Error-View ```powershell PS C:\> .\MyScript.ps1 @@ -150,46 +105,12 @@ First parameter set + specifies one or more of the newest errors to display + Not required -<<<<<<< HEAD -<<<<<<< HEAD -Examples -======= -__Example__ ->>>>>>> Error-View - -```powershell -# Displays details of the last error displayed -Resolve-ErrorRecord - -# Displays error details from pipeline error object -$error[1] | Resolve-ErrorRecord - -# Display detailed error information for the most recent 3 errors -Resolve-ErrorRecord -Newest 3 -<<<<<<< HEAD - -__Example 1__ - -```powershell -PS C:\test> Get-item c:\blah -Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 -======= -``` - -======= ->>>>>>> Error-View __Example 1__ Error occurs in Interactive mode. Cmdlet displays details of the last error displayed ```powershell -<<<<<<< HEAD -PS C:\test> Get-item c:\blah -ERROR: Cannot find path 'C:\blah' because it does not exist. ->>>>>>> Error-View -======= PS C:\> Get-Childitem -Path c:\notreal ERROR: Cannot find path ‘C:\notreal’ because it does not exist ->>>>>>> Error-View PS C:\test> Resolve-ErrorRecord @@ -197,22 +118,8 @@ PS C:\test> Resolve-ErrorRecord ``` __Example 2__ -<<<<<<< HEAD -<<<<<<< HEAD - -```powershell -PS C:\test> slkjdfh -ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 -PS C:\test> $error[0] | Resolve-ErrorRecord - -PSMessageDetails : -Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as -======= -SimpleView of Error message. Piped error to Resolve-ErrorRecord shows sample DetailedView -======= Error occurs in script, shows error from view 'Analytic', and then is piped from $error array to 'Resolve-ErrorRecord' to display more details. ->>>>>>> Error-View ```powershell PS C:\> .\MyScript.ps1 @@ -235,17 +142,9 @@ Display detailed error information for the most recent 3 errors. ```powershell PS C:\> Resolve-ErrorRecord -Newest 3 -<<<<<<< HEAD -PS>Resolve-ErrorRecord -Newest 1 -Exception calling "GetHostByName" with "1" argument(s): -"No such host is known." -At line:1 char:1 ->>>>>>> Error-View -======= **** Detailed message here **** **** Detailed message here **** **** Detailed message here **** ->>>>>>> Error-View ``` ## Alternate Proposals and Considerations From 46b238239eff8acf9c867ec60edd8b7eeaa6e974 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 26 Sep 2019 12:44:25 -0700 Subject: [PATCH 28/41] update for a new pr --- 1-Draft/RFC00XX-Update-Error-View.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 52918b63..627bcc69 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -41,9 +41,9 @@ to remove 'view' from the name. The view list is as follows: ## Specification -The proposal is to add three new views to help improve error message comprehension based on user -needs. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` -to provide detailed error information. +The proposal is to add three new views to help improve error message comprehension +based on user needs. For in-depth troubleshooting, a new cmdlet +Resolve-ErrorRecord to provide detailed error information. __Key Design Considerations__ @@ -174,12 +174,17 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A __Alternative color for all errors__ 1. We could change the default error message color from the current RED foreground and BLACK background to ?. -2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. -For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. +2. Differentiating errors based on termination condition: terminating versus non-terminating +is currently not intuitive. We are examining differentiating these conditions on the console. +Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. +For occasional customers, all error messages remain as color Red. For advanced customers, +they can change non-terminating errors to another color to separate the error +termination type in the console. __Alternative For Error, Warning, Verbose__ -1. We could be more terse in our messages and increase consistency with verbose and warning messages by using a single letter to identify the message. +1. We could be more terse in our messages and increase consistency with verbose +and warning messages by using a single letter to identify the message. Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal From b2f46ca5526f4739a23b85eeafb2a7e0bfa129fd Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 30 Sep 2019 09:21:14 -0700 Subject: [PATCH 29/41] update to reflect view changes --- 1-Draft/RFC00XX-Update-Error-View.md | 71 +++++++++++++------------- 1-Draft/RFC00XX-Update-Error-View.png | Bin 40639 -> 35199 bytes 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 627bcc69..08bf1455 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,69 +20,65 @@ complete detailed view of the fully qualified error when desired. The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -This RFC describes Changing '$ErrorView to an enumeration and adding three additional views -to improve readability,'Message', 'Analytic', and 'Dynamic'. +This RFC describes Changing '$ErrorView to an enumeration and adding one additional dynamic view +to improve readability; 'ConciseView' -- Message - provides a concise error message suitable for new or occasional PowerShell users. -- Analytic - provides a refactored form of NormalView -- Dynamic - provides conditional switching between Message and Analytic. +- ConciseView - provides a concise error message suitable for new or occasional PowerShell users +and a refactored view for advanced module builders. If the error is not from a script or parser +error, then it's a single line error message. Otherwise, you get a multiline error message that +contains the error and a pointer and error message showing where the error is in that line. +If the terminal doesn't support Virtual Terminal, then vt100 color codes are not used. A comprehensive detailed view of the fully qualified error, including inner exceptions, will be provided by the `Resolve-ErrorRecord` cmdlet. -'$ErrorView' shall contain the original views for backward compatibility and renamed -to remove 'view' from the name. The view list is as follows: +'$ErrorView' shall contain the original views for backward compatibility and to +lessen this breaking change. The view list is as follows: -- Normal -- Category -- Message -- Analytic -- Dynamic +- ConciseView +- NormalView +- CategoryView ## Specification -The proposal is to add three new views to help improve error message comprehension +The proposal is to add one new view to help improve error message comprehension based on user needs. For in-depth troubleshooting, a new cmdlet Resolve-ErrorRecord to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success for new and occasional users, -error messages should call WriteErrorLine to produce a simplified message using view 'Message' -and include the preface word “ERROR:” +error messages should call WriteErrorLine to produce a simplified message for interactive CLI users. - Simplified error message syntax from 'Message'. (See graphic below) ```powershell PS C:\> Get-Childitem -Path c:\notreal -ERROR: Cannot find path ‘C:\notreal’ because it does not exist +Get-Childitem: Cannot find path ‘C:\notreal’ because it does not exist ``` -2. To improve script debugging for advanced PowerShell users and scripters, -a refactored error view 'Analytic' will be added displaying the error category, -exception, code line and position, and include additional help for the user. +2. To improve script debugging for advanced module builders and scripters, +a refactored error view will be displayed. If the error is not from a script or parser +error, then it's a single line error message. Otherwise, you get a multiline error message that +contains the error and a pointer and error message showing where the error is in that line. + +- A new property ErrorAccentColor is added to support changing the accent color of the error message. +If the terminal doesn't support Virtual Terminal, then vt100 color codes are not used. ```powershell PS C:\> .\MyScript.ps1 -ERROR: ItemNotFoundException - ---> C:\GitHub\pri-errorview\RustTest\test.ps1 - | -15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. - | +Get-ChildItem: in /Users/Username/GitHub/Errorview/script.test.ps1 +Line | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. * Help: Additional help information provided here ``` -3. The 'Dynamic' view is a combination of the views 'message' and 'Analytic' for users working -in the console that also run scripts. When the user is working Interactively in the CLI, -they will receive errors in the view of 'Message'. When the user executes a script, -errors will use the view 'Analytic'. - - An example is in the image below: ![Message and Analytic](.\RFC00XX-Update-Error-View.png) -4. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed +3. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed view of the fully qualified error, including nested inner exceptions. - Resolve-ErrorRecord will provide the following: @@ -110,7 +106,7 @@ Error occurs in Interactive mode. Cmdlet displays details of the last error disp ```powershell PS C:\> Get-Childitem -Path c:\notreal -ERROR: Cannot find path ‘C:\notreal’ because it does not exist +Get-ChildItem: Cannot find path ‘C:\notreal’ because it does not exist PS C:\test> Resolve-ErrorRecord @@ -123,13 +119,11 @@ from $error array to 'Resolve-ErrorRecord' to display more details. ```powershell PS C:\> .\MyScript.ps1 -ERROR: ItemNotFoundException - ---> C:\GitHub\pri-errorview\RustTest\test.ps1 +Get-ChildItem: in /Users/Username/GitHub/Errorview/script.test.ps1 | 15 | Get-ChildItem -Path c:\notreal | ^^^ Cannot find path 'C:\notreal' because it does not exist. - | - * Help: this is for additional help information + * Help: Additional help information provided here PS C:\> $error[0] | Resolve-ErrorRecord @@ -149,6 +143,11 @@ PS C:\> Resolve-ErrorRecord -Newest 3 ## Alternate Proposals and Considerations +__Alternative/additional view customization__ + +It is conceivable in the future to add extensibility for module builders, +that they could supply their own diagnostic script for specific error customization. + __Alternative single-line display__ ```powershell diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index 48ba682ac577e178bc6b479f1dc36d8d47795d6a..d62af555c62a4c40234950fc49000c671ea1f25a 100644 GIT binary patch literal 35199 zcmeFYWmuGLyEc3Q3L+&2J)k0?FoY7)igZdyr*sURLkvo(bR(&BNJtDFf)b)2AUULf zk0tm?YMt< zosI?O0Py;{ywqb&FC+9M#pa^6;q*yafc%A&hMW5`GB=-TFt?TGc}DBGJ*RcE;xij} zK_{-J6Oy<)+E}>LSdySW3s1=0Blk$IfM}RM`h|b_7EihQ3MbwG)FAzxi&gdS*q2`n z*vntDghV^lZTL=GsrF?^Y`8XO_8pv@r1c%__nims(xj z&rZE{jcCjgW|OZcGX=B)-koYIrsMA-MR+{YTaK<1mOqhdCzhebi~%A}IJAvNvKf3>``HyGt1>fX@?k4R~jDVMf=MxK%ca z(Os6nf=xBUP4$~C|G~s+x`^lc@oL#fBQ>V~GoHD{2BCGeu}M3ZI)A zGWoaR$;q2rsINnWN=-%L-;CfnJ`c%7ftng!`_=dO04FV;SK|DEf6bDPtA3Ap-8)%E zVK=$v_-A2Q4&f*!i7A%=wgz+WoCZ-$W%l|jlJPRy*DCRQ)2y$@}v};^2$b~Oc+jOFHzlp zf7N8y#FR8<&4tMD$3v1KHOOXbS9wt8d~tgy#j0v1a`(2#b8Tb4YKNE(si?H*uvH^U zOuJA!W7n(6!XKJZ(;j840x8GJOqQzaS20bVosp2Zj#}>F8rRTax#9^SYNDC7xjTfQ zauz`4Jh~EKWitpcaA~Nd3orOr=M^We;7Ja%R9L&}yPDs<#La!4KuO`wz1rF`(D4A z|C}Q(^~MxST4Z8_;>r%0KnOc2G5zx%9@5@^_y5J z$=Swf_-aYL^EU$8A`b&*lRtmsMU zr?PxcB=Ep!l3r7G(DF(eaHH`J9BlTgP>iBHmuz+_kw_-UlluO}*^=Vf$K0_HUU>rt zjqRGRiu0Sx(kWF5ME5n(@r(lKxtfOJY9+t9$@cZ055es^E?jy~;vRDE+;Z&>u;o^GsV70z#G4`}OZ zRqG^s-9=t%o6Hj|SGy@Rr=8-gYc404ay&3;QCmS#89g{TTph=z`gPBO22%rZH^HmT z{ma;!V1~TTrBvB=G3Zqyq~f}(2v-5)mC|VQ+;ybUl~Tib_4<$S@3EUwx?_h6Wzj>i zsE@xlSlTMv)dh%jtM6m<4%c!i2N3S zjaJ8Q-k$Y(Qy%ktRrSkZHh%sW~6Yj2q%S zv)6-A&qf&=sBPkv-Wcy7nNF98JQwOoDT-tIcr??g9FTm zbtoSDf!P4*Fkbz^$?tB7i~dNP%=)iF8i_iV+y)v?YKKm^&ALEI@RN9%PGzh2!bQ5X zx?@B#IT}|geAMXP@|Xo>wsdnY$)r;Ry<*t(@^PYNw7I- zjXUN=Y94dl2hczBol-rZiZY`RE5aE9uX`Txv~3NeVlE=XVDJkKz`jd&@>1xG6AqoV zc6F_GtX&UUGm6){5!tw_$<(!(uilQ;s7xSIuW~C2?R0F=)s@HHECFz+-OAT`Z zq^-^>(MJf zRB={arnbalzv9U#QJMr|3a#&|PcXZDMp3BcsP{bWp^5IYKuLDt2ULYhhUi^CH?|Mm zLpjX-p%mH%&cS_|MR1*}tOU+mojs6tiDq`=l~0mfG=|^fRHP-Umptr8t6zneH+&7j z^8!Ps{9E+1`mjmn8nf>(J(5s4x@Dx%j0a!e%gK-k#$+DGwWVt&lmhaL{j$&NY!2O) zWq5zTuwT=pz=aEP`QY-&W6+LnihB=SYq+fw`1ZPDm}}#-@q1xpS;1}wRL%7h@y1e^ajwy6Rx}wrTCk z5W(rR)a_GS_3p3T*c-}{2s!mXqJTN*2{!M?W*qGt5qhA#t>8+vz*@HP&k!ctYCd=0 zks#0xpMT?dHK=|G=!V{%{IVVcCd2b67Y9;%U-pM6Gtp40Jl;JxzAU83Dv5v{v@z0R zu@+KZ5TPE(M*#josMDJ^gQQr4&H8fIua6`bai%G{Kxj2!hc^p*lA?}oM9#L z40DmCP|y;9E^ou+Dh2zgq||*>%uHrsJWHVi^^jd64VyyCMC5O2+ff%?th9tQC$9gH zFivo<9A?|qHeqVjm#Ri$Sv@C;YY}&Y1 z2$*H-mZPpj8ubt`Yh3aF`8HNz7SEq$T}Ho>6YO0_FKJh9YNVw2&BALY3|L_V(jxDO}yCiAV1TR7|Qm??O7Bo(tUn z8z!a+0GIH2LZTCLKL~xE>}FCzr#aTW(i*s>+fpCcn!-RiL0 zC#FeF7w49YMB~~LYP+@Z^+UpM>xI@o2R^~ROZE`NZBv-vO@Bj>ng=73R?PoACFIV_`&<@N(qBp7jU&5xG=>F%#_5=4Gj?Q95r z?+1zPtNE&#)7wc)l?kgSD;09p-aBFUxWK41w2LZ|4{sXK`gkc@gcHnn_ zr3%%)Lqb&Vm4JqK{Ri(u8R46sh+4K2%6vOLeM3)NGjSLFUKVND5t(#hn!E|9st#u9rPHVZ8sfEoqXZ;?{DHgzb-uLrOy)}BiVodWG0Ye3Iqx=PbL<{G0Upc?jwfl z?l`%5!0q$Yl>j!@vd>Q_#N4o$1I6QnrIXjHzQ5MSD*xje_6%J!eb#)?)Yrsy{@%6OP^RBcW=g@w=1E|E&rXk2{Z=%Xu!o(h znc|p8&&Kw@FAN7J=rHa9*&0?6ne5i0&1t zx*IQwt~*DaoGwamPaBmrtP9uJDA%mUu@+_LceZRrIJy~^C2%$CKp#{v`lgOE(MC$!Mqec1%=lndeP=RGznL>OmoBFk)4& zm#8XYGo6kLCS|-2VRQkq`*6>qDCdO!YGQ)T(&?9stZq?H!~v7H<`79>{W7R{2;q#A zbJ^oIw%dlOA*&lTjSEn8zhv3(BxLM|siR)cl`{Pa5FH|jRU$Dw2!+K#Yo`5A@{W9U zT*^Z&IGpX20D;};q>8o9+Ti}`l5brm4L&4N6xS3$qpi{6J2_rzy|yX}tiIH#32GT` zqNi;s<^S~-3Cj+;7WSw9u*Q(Kd8XU?|ik zZ&w}VQF}usQ}C+v=ILHUnBaarpTmfO>vz9{$%BKlsp-Kc7mKDDWLDA^&1%v>z{y4n zVzN}${wKeW3|%nUtCV|g6NHTyD-?U-Uo|p*g^IzM6Riwxu^3?D1{fHY*8}!O27cq+mDcWnE^8*WEU)M;(~TPmJC2Kr^>p#5%~|Ya3OJ6+ zT0z^h%($vXa=lDCLk5f>s?z{WRrq@DAlit2E>BG%Nr_--dPDtXHd`!VR>^|SR76JEMZ?Jux|MaZiQ4H2IPZQ@`7~N`nh~o)kXH2)yg6? z=&W+?_%w9Q)Z9b~Ko;$z2uU>$YeVh|`Vc=Onv<&4LPyC*yW~PVl8E+krJbq?TUGy@<$t-XfM|{t5}*tM$ml5dJ9@>WO~62_j-dwH(cZ zpmYYeccKV~o^rkpsEC01LEf#L>xv50WrQ=ba35Z@B2BI@QH1Y}{*!tRqi@E8eocu; zo)k*Tz40Zzx$tmULGXm0@rA%N&d+KVQ-l_7|zV)lhxPQweK zLK<8&n1ve2q!u*> zPnpEd+dkjzxJ-MB*0!Z;UWaRhCbxY2%J%XGg2AW(C4Tj|^oo&?A0=VSMGw?&MRWcb zxfWX$-(%3@J9w%0<4A$lwXThT3+Gi$piDIY^Yz&?>ZQAe$Hi+AZru)ueU_~1+K#Rc zcB89ENTJ_gp(6ZY_>r z;l@>1FsEmbMA!}m0c*Td;QZ-W_U~dg^J$kkyTsSz(zol5V3kW}KG!Gj`S_;1?61HH zKOgF>ar~89na?|tlQ)0m$@BS6YxC{@_H7aV-qpw3wtLX^;>I4WV%0J&ic+mU5Bf8r z$-O-i_n)xd!9c{6UvMey13OU)`sGD$Yj2VwBtK`&qClgrtGTGjd(-Ut1mg5Eh}fGL z|EXy)Cms#LHKxDw{{vuEPs=WQdWEr4ugR+VxM^tRqeFW~n|`Qbdko&Foo=2i32R-o zV{DnV5P$Prg9hC|cLWn(df~tgWVKdUMyTO~5DN}(`7&d=#80YWM*CU^L;K2SZ^ovD z*VLf5fTXD(P?ZC`mKG8IBYmF3)RlQCQQqGjLeoVPjNv_l#qPvuYon})Q)QLxyq4-y zqZ5wxBz^t6kA8`y{ z4G>IEhxzHFB=pnP3H%YBw%au( z3c+Jf;#~D2dKy-?)wJKJ8ZqT*lT-7V7UzUZ``X-~H+)>g3)HwZ@>wG+s_Q|$ej@S7 zeFm@I<$`KlDBnWxlI1oRlHfgs_8Mw0a>XdI`0j6ZAE z*9+I8E*v9pdrN~+nWhOy_&7qtXIMM^QO^&1yz5##L{9?!8PRWzDtdBnKH2jkZ20kh z4YIRQn7RH7MK)Jpn;PV_YAIn*fja@Ips7E#EgEmm&6r^qRmT&OJHGu%FM}#q5GwXY z*v%#ml>0C_AFUb{4yX2;E9!kU{>$12sv6esLP-|Suz|2`8s{DZyH(5pMRxcKw*ZAr z!$1M~+3%Zc2Q|kzV}_NXxnKP$i(vE*I6Ye2ew-#$vz*O5_4r!Uem`%amGNIzKJ!Q| zm2R~Dl+%(M+#*YUrp%>Rk&`u~UzN92(IOaHLDco7UBHUl!Snm59jV@^osd!zbA7*& zQB?uCje_bHq%X3r^Mi}|f)dC%!JQELP+~qXXI?=o}2bLpG)HrEd?!=BUPz6LJ=4()qg+c3UP6wif$P%3C;5ItP zSW0UwJrWDyD%$i^I1v;&YHD(a+KrxtFFyxEF5lw`u zA_)xPR+ugh-RHclMIV{STxH4LK^f43RWfL^Yb7{}3B#~~JG zgpYvAhteTU_m~vMcS-l4$)XK*xlQ};f;kwcAN%l6mkQ@dj&z{N^h2#eF{$`%W*Eeg)@kW&ErOPw+ zJl&J-BJVle*l+#t*S1hc8&9We1JUvInLi9mDDYdb&bp3@cbM$`%EtF)yz$?g>f^E2 zx1OIzObXZaDqgTdluu7_TF{K>xKiUBH<9=-4&S@VQ za1rY{OCCQ2mu{I~{GdUdnn=dExfz z5~f7l#$#m7wD66kC>%_G*Ty2CYyQ$c*^Bq$(<>593y}tn_Y#`@S||QCr6Zos(R654 z+w|zJ;F^=;u}{L8c>awu%jw&V?kD(q2*t>Ir)0J8fR-`?jktgfZ9Y1^vFZ1U5N@)R zQX#j;Ga@t&yStYIv7Id~j(iZ)c5}X6W3$U54&il8+QIFNljHO|Rb6|P#i~B_`g-d` zP(McdS!=~y4a=yyBuHXnV$^k{ga`yaxROmH)&YewomQC}zmH6%XxvpJA+$@iX-J0})E&e-5yh%0ll(q9_CwUBoBBVp zescSf4~BH(omCg9==PM4LPsp^g>zatubcxLI+=Jhtvvnso*((#Nl%Og0ATIfpGNKk z><5=+W%h|G!LP;s`8BwAll+5)>=WbAk)Zz%yFn0b`QK?G|L3-A|A*S~e`=Df)%bWI zX}x~6w9={%MC>-2783Qjns(I>I>5_-B1L^uC#2D(o+K`d|*fyLmU%z3e+&urq(`)gxSzVpnnK{!D3+m}#@(^--A z+Br|efoEU3$bm6-716ZOe8T9v`KingZRao}lbUuo$0`9J?9n-b32@>75b#g= zrE|0sXuW*}2WI}y1^=(~;EMrG19F`P!MRFl)BZTUL+$MD@}L6|PNTAyT3ZJuy%*E9 zjl37`If0mdo!^dUpV&c~kn8XH?l?#IVCp)C{Y%7n zUZvne^}gR@k&R?<4#m#{=}irxtTX%H-+rFl<&SZLx04CV-SZ%V_2DRQ>mT(Dy%!Q3 zIKZ3XAjr+4+uRWB@s<-a+5c#4tkP=oS|xcXn@U>kRtNpT3^t>2S=rI0>8lWYw?M?f z$9!U9NV|AZbWzA*^=a(X!pjv;HE!XHA5LZZRMh{p7A5TJIpv)n zQG;}0H|)GVwh!1n~!ZLIp(FtVt?1~+sR~IV<~0;=WjKa>Rw?vJlvD8rrKlf za}k0orSW`^xRy{it-6!O5F4^w93w(*OVNylk&I$=(&-)Tcjn~~gDuu8Ag?efqdt%; zFK{hVKQ0em!SU4*ZAb!<@D~+T?5YxX2_#u$Y}NQ!(j9R~@@7A(+MNaiv9M$bJ|6oJ z8N%?6`6fy=L$pqOnR1Nlq@jzePVvxFBY)>MMU*|I&(4DtP=y*e>*e9;+z$|O!`Q^0 z45e^3>yuxpkdbiy6@*G*_Susga{2yYQ)=0UrdYHtY3;IWB-?VE;S#=0oxNMbHMP@d z-`J+?OR1Ay$w8Uyw`2#rSZ%(dId(p|WS2@;WasnQt{)eUex0|J*8+(U8chb@(d^M< z@r-rXxL61C&2%6Un*p1&muh-;uCVHFfcymiym0RrLpY8H90D#bmUC(Hjn_FbZKnTN z#IV7N;>v7hF{hCGN<1UyIk(O_r_(D31l)x&Lxia`(IyGwf`#!N;+r`r0tFo#uP zk?y*yD!WEFqMZmxXJyQuUss!t(`d^KB#TQ}i&e~}+^Xo|+Q|o7V7Yx`3H4*V-=&#v zN|YS5;=31Qt}aJp3L<^pAJqxd&Em~I_%Ui>6UgZJEo^PT3|u4+>G{k)?Tx=Azrjn6 z*UzpJ-{I^oO(eJ@ddM_>{VETiiX2_c%p$Th@CEi}G03gjmFji}i%@aeYBPD)B#W{9 zH1Mh80WYgPa+)TX3^ZE4Jh*Vs-x!z;$pydu2>z&rn9`AV z8i;W5oBrwasO_-EX5==QBH|h$Dw#^f_LT6#6;g+VLYfD4ECZwx_!$OLl6gp;J07fo0UqaP=tO^5fg<9oxxTj6@WQWAy~U`Q&1>^XU=B?lXW zo6cR3dMfBA3m7CgYXvV>eWLl!i>?^c(df~4sNxY$knI^h>v1RZXE5&*$(Ja&^MPN^ z_5RS%Sql1->nqKr7>&~PcOi%^er1E(r{)h&qlejUW4+%+JMUyNgrEe`dRktTwB8^+ z6v%iJ6K5A)n~bS__T1^=%x#7jPF@KHvIsSto0M<$zuwLTxl-7+EB^6PqxYt9Wh-3j zobi=t{)^m@BxwfBrn%UHAH|GU{GY#Nt>0u*!G!jKbcrA~BLrs8VKwCrUJdin5+%i98aArai4mmeXmy>m35bLTcr^bU6MOO~@mOUbRjP+Pq*g?|Vby z5DhM8gl8I{>RcD+sn)B)g4=2QNmDT`H;QoXkqa=m>jq)3-SWNq&lJ^j{P1eYoT8#@ z8T`?qPy*_DSB6oO~?sh>Dtx{Wx|Qj70~Du#Gv95!^=f_Nn43FHA#~vsI2-jzIT{NG$nI`>)m!2sApOy<#HDRZM4 zejy3TnZ!A3oMb=nGkR>#cW=)9(xiFXPJX$&`^?Pf*2ost&P-=S-SkInjHmtx`C;Lx zn~UIWXYJBuu8(;(8Xbdvh7B%z-dqrqOr3EKkTLYHm-A3us;Rc$95)QUbqiyo@4WK! zZjH#prvF$4IDMQEDADK2H}5vg>igyh+GK3KxA9RMY`0Uq7^Id`4wUbag=GSYAE17v z9B7KbA2X%W^MGdp8Nudo=9_d7ac8DFtExPkMcZ@=&O7wAlXVhov}ZK=*hY}?2xNNeOkssm)kC$XJBROnrm`lm|JdcZ1&dCsg**np z5}rDYsH_SPDvK86;u=Z`Nbh@s`=uGqgd)WK`^>PA&4m$Q-6hP)jDvpn)#$JbHabDa-GLUhf_d zJx)!VKaN$u6H!|>;wygrocl!HC8yT2FcNEf$M8~JEpnP^gZp;O6Y_^(mdwfK;kUU0 za&3ZY5(B|~1B;Ll9ber`M$Rll$~wv2BU6xXGcPA**wxkWmpTOjpZnaivI`2x!>YSu z_g8`^Zl5~o@7TKYDG&vrnwBCZ8E<*E>A59-HnVwFy#dBiIgVKTjeuoV&wF!R?9MFo zn^)oHwAKyi$hZ3{42dy!-ilRAYbt5ZE9c{GqY3SUV2XTxsHg8hm&-yMt#x>zwoi1r0Xto@o~HOpw7^A}X&-(@und~;e%_gpDekGsS1bqXXh+m^@MGwV+@2c-EQ@7jpT z{Cbo2%fsNq7SC){Jm)+jM0Xr3ryp234^X?swm9hZx`Hq0!f>GexhkN5XbA$S>G7m&e%y?48oFL z{l`s7xJ{vZna^Z@wrp9`4A>lj2OZ|#ZW~twXMpEUdX?v^M~+)G=)fh${hvG_HIcn> z+Ph(Z+vp`f&>d>n6RUp=tjGA^+8yBATm9*5dL{X&iB;S|G?U(mW5!7n1^E2m?3mxf z2TOz+1I!2YxT}*N)HKTqCdV??jo|o5t!Z`O!#>6DcKuDx`Bt*gPnMS>`yU)22fru> z9u_f|G7|9W03p{^AGg4}%P~HNxQG4Et3f6F->LAMn?1!tN!rDZ&c+LdNIgGzHQcEh zjzn!rEOF85mSj7)W-y-ataGe=23vFPsN+76bW~SH$OWHq++y{K%mwT=2tQJw6)%?`ole)JTfAqxjH zRUTK}d~B58nij8o=Me^!#I-YJj=wpJL=}pyT72Nb-z<^G@zc6Hf>2aJLW-#eIb(vvDVV z=^q${c73QeTCv(+hs$&yu8mk3JQsFXjSj88s=|{`;6xL)>ruTC9_N4 zE0T=aCs(Pe!NZZdL1CJP$h=({corleTT42BX{xxiUP0zjSsHl?Wh|Pv<#&qRI+#CK zOB;F*Zl7N2U2@Ofyxbq^vtJ^;2V{Hi*VXf`s2n16iXhy3#mAc`=-j(;$Y2zBlqBf^|# zz$AkFS)R-Ow<1hy>dP4A?fRK&A*YY6-4^1pfwd`yibBX^JjZ>2ILr9*dTGSiFk5TK zI~$ybHOzmR{^kKDV)`(moOk(QzC!0Hq-;u0 zbHj*^$~04?0yY#vyQclYLML9lJ+;{ah}J`>O3MCi_2tee8F;uqxvqwBvK|r94ExJG zKHvmt@t}x?Dq!K4X=)99K*VDbA84pe^H78uNwquyp%#szyy4yB8%9-@{7V(J3tiTA zZxwdBWmbFDuXFC{p?13LJU;TYkH)alRSiT8fU@nnnPktu3%NK`U<|iIl&zFR5L5(S znJR@l3q2&0>&I$c8H+?=V(E{XTyg~N`}nnt_%*TS_duG;N$%DA>{eNK4n}(AF0yF~ zcdUEu4QDNY)}-98V@3@RlwYl@{uYmUGuEEvwj$`)1Kg}WBf9`G#nrSV0%}4NWrOY9 z_}?{4aY{F&JJShgc0=C`&JkUh*;TK%;J_PYtm0WcCbuNmr0Gx}FlwM55Pgs=mBKy~ zys83=ZKgKWXfnlnXzQIE6C}pjZxrJ|Y10z#S5I#5{$1=QU?sv;6Z!Imv+`VkeL=L^ z9`g?`XGHMk#MALD+m=(Qr5NF#$EyXO#_sO)$t=Hq!^&qH<$o8(#ZsD>lO&cmzO_;! z-7~4ETH(BYh^*%Oa0ldZIoQxr-SB6|58$0oC9ZEfFSbM~?WWgHeR&2s*@&bP{2O%@ zUelFVvZ*izv>Q2!0ViB13YF{63Caby8{>e9Ng>;R)M7WX*wMFXo$-_)fQ~zq)@qOm)9` zXsobV3a$%#mU5>(vO)Rv8t+gf$;ogQW_{U>W--!HU$I@G$g#lBPSrTqx*pF2z=Q<) zpLYN~FM9HRumkk8&qnX|zoQmZNplClB;-p_&M0K>oe~>tSxY*UOv%q|__K%+->DF$ z2C5a#&wdYNsc5p*!0qOM$r~7nu<{cqX8Xn1!`kZs5&p|~E^n%2_1LiqfeTc}NiKDP zTyptJ$iuO2an1d~s{{VhXh(VYm{}2o!om@%x6U zKE{!C>GFA(qxAT>&aNOdxLd;?7K-|Wr!$Jc_x8loK`|I9=vO2FoZ*k{C|bv-O$qEc zSx_VEg&jlhjRuXnR(MT)V?(4#)(5V7P~$y3R(G6LwPC8NGQKTrh+0-1x#8`uNp!*F zR*e8_7AQ+V0rkB`L&cU;r|!d~@we#ONp2VlB!(n{Lx?AXd(_RF!AVVP7Gs@v(<|26 zuL!jI>)jS6pWTZX8RUSNd5XqP=~Yb_nrE7yOvJ#zQ??litgdy{TW_Q*+Oy0pi5kJ6 zj{S#Bfm$^D?elLjuO6ynQmYjBo`h`a)9ru+BoWe9$?>%fj+V2)p_OkTcslXI4y1ZM zz_8`UFUJ?;+HYhM6_+jAhw{_TdOe#p5NI1lIqJd~d&M?rKVAmq#mdzYd!~r!>{YX) zfy}GbQq6quBmtDTp`*5;D}9r|(iij{6N5qVN2&9HQhbLInApnQ{P@ZjQsyEK2Z~)c zdvuR4FS)L^xXE6~B7T!W=I7t$iq4nb4pJ@oWN z6_E|v+~^;?%KxmHlzZwSXO^=$@J^vc_dU~J^$iM zo=$L$+(_qbGE&{Kfa}!~_Q`pXayDcoRo+lMox^Ju4QFvJXV;lr;wP)CjMeh91}o=g z`1i-(O?q0D9xZ-qt_F`{3UJf)t<)({DEerkYx}w1S1#8qCFL%P+S)FUT{?L#3T@lC z;W4bQ4!PCUX`ERT8kLeh^%u?9Vtl}O~6!_ zpsHK&Uyb-0L~F5CW$O*zQpCS@0wx>f!bBc#v`HU1{_pMwy5RlA+AXK=hghcPn{lH$ z_`;v9#LX}qcoXo}>Cam0_ac%?9nRW^9R2;>hxi?O9-o8tCaiy6pCoTxE4HO|U_o_0 z!?K?F^E9O_7C`mCJdyQ$dkr8z|Jjnf4T1!?gCj-vy@?hyk|QDyu}qAeOI{M5T@FON zO!@aEvGyMlZ+c3wF$M5Xtn4o(FMaJh>3%_*{9mr)6$g^8maX}rthAF5l_%S3QASPM zni!e8=d?-7wtp?)a~HrMGqI@-p7so@I3K}%3;Lt<`>#Q`ONgat^HAo0^hlzF*`1+oIsCG2cb!k=E0^f1ZeLOF90P3k9X?R5`Y%5t#w_HQOdT6* zZ8UqHdrE<0qnrBzw8JJ zDaNr%iB)WX#0I-K$yvNPk!EJK9>El4(*rw@%S`6;-OgyPc?#Lh=4O0N8~|AUVNzT2p!T^S=Cx@HePmMwO+!&yC>23Fxc3dREXIuFpnR%(ZDhDi(96&hUusR68amu zchu$i9E97@Ob#ea3J(wlHp>o!qSFrB#4I4Tk=XIa5rw>>;JYgc`36gVQ>yD4K;lzg z%P}!lfl&^B{7s(zS{o6R?7;d+6<#f$vOe$8`B4bPxqo?=T@-#f>t&z*vd*pn1Mn=g zjf)CDVU8`&;D@~&HZghfK@Qn&Hv43DmQeN5S1QyI;Boc2+{f2c{kP+$v1bQN;=Vc* z(ILwhYi=|Rgx}L|6ObbiKm0^dn!0~U;yx5pq@wW5>!2Y0t3RtEu>rE@Zj!No9n=19 zXs#lKQuUm$#r=S@uH8UuvkqySZ%;tCXdU>McMgtc10U=hnA?{srmTpGf&O3qn~Rnp zmGi32u<0jhd}hYc?pqDo1g~2f1oC(R4znaN>y$i)=A++Wqx04!xTXbzE`tvhBWe5x zUa{-@66C-Jc&05O^PA24K}c1FL_#@<-T@lywT%p;2j8O=*tnX^s!i*^Obgq-<`G_> zEAF*{=ZMV>;f_3jfs=gkUs0zg10&LLoJQt?{O0qon0EI)Pi<)(_=lw87B z*6W%`Q~z(3>9$M-ySfp#9Y9*8RRbUSzbob|;Y{?|3)7QiLmKJ;{s&!2lG;0JZ=R~1 zmhZ&gBD)d8u4zu6EkM?~oa@%3h41A4qiSxPak|rKPOiVUJ1JLHLwelVM-s)xawE9o zley&J>L^){Wp9C)OecD*u-EGj#1)q+IR8~f?w8mCRL5m3>0ZSr+a~tQvhVy7e0@I+8-U<}Lrh>XmQK!WmDFCXWK*?|Y1s=v?XRf4(a!l^ z5g{@=Dm46V>}L2h=zAmhHC83c1m%|`FmcAyENGy(dFS}Mz8j+goV1ABG^Io9A{XbSgRKBitLBigxBHV#((NC==W5? z)c)Ae!t`m^)P{erG>Yx$Ae!)^NpAONlBDevmWjw}H*{(DW7=g7j>f$JxocbU?Nc15 zehVpdZteck1X<%EU>}*B=gU+~S!~GX5L0e?pYB+dxB8%1`0leIS?Mwx1U_dLrJaq= zpt$iaOeiR=Dvo0xpJQ>+8~vgw`ySt~)FWjEd^vV@im z@O<73ou>RxX4zHNHmPt(42m{f8z<6K6=YD7Vz4}g%fV|JJ}=*=F_wxSms#dQ%UxK{0HGG*Ik6O{IO37V$bI`={2jdhaS~@gKF1xRMh?0A^%Gkh z^q2uhd2Q@I-f^z6=L#LWLCDI>!t1%D@P(=Y#ax({M-TslL+3%$33ec#`XC==#s!jL zRlb@GL><++`Y}kw|Snz3{{^>v!{qo3g`T zR42&*!`v8}uhD0}z62V>^hwO*h!BW^=9c|-OE7*pkui=hXhb=Ojs~1}w1+zm=bF~y zt4Vui5;r*hv(Xh0JrpBX`fs=51cK^a(pui~Z@K|Z%HE6PA@4#y&~tM9nZ&94X3TDV zO;35$Fs{k8*v+wulwXRvrhyhbI}p`}Y;1ysbmU8KSbx*wgJ#D#5~p$;y1RQEIa?p zYzm*(Qm1Gqckouzpo8T`ERGyZJF)HepLZwoOIbO7@^mHFvoC5?iT^+Coo7_j+qUR~ zy2V1Vg7mG3C=d_?EC{%jqC`=UW{@UC30Rn@iL!!8D(2YVK! z+mpgJE$jDP%A^%(ksk3ZG9M|+4C0pa4Hpr-uo(HTQ0Kd!TJs+ad%x47zciRKK~WFc z3!ull#%9BQI12ZGQhU_218H*?Ll&{{{lz*PK=ktb(5NI^MPF5eI=DIVjwAM}pNMQ9 z1zI%FdwS#X&)33A^Mf%b4h7&&LZR4Yx*Hg#OCa5w=Y|p zy8y&r8r2Bb!Uf8wR9C3mR)@{D`F?^gAh=*HZ;MZb3Gj7^SkS%a#bFJ1knGBm?0&DG zsh{6~hxWD+6ZX3MW6f)ex`A=VP~YG+S)J{-@Ge$hgweS?;uzes#tGYP8f7(nW>@c< z4uf*Jd;>|uVM4PJI;~M73lt%=KpeRAzyhW8DF%(R0e)X5BNwL*J5f%@kkma_rKf9w zt?~V&JZOAE#t_i^U~1tD63`_O%s4+`f@&#FRFvr>_KXVrXqp1SWt zO}C&n+Z|5D(+(>+m}r2=j|ZgB3KX#wRO>sI#v}Y-U6MafCEz}tx|@5vN+M9Ebg65n zG;ALc#xK^R(`b@)Xc1y2IiH27HiY#myoDBt`Uhg`ER1|}5`wwR`+@>ws^psFjY$Cf z7JKIlkLJlx9o}b`mT#&yfoyy%qk6WiSWyRhBx!Zu+z;RGP7V|nQ$F-e4sUPevDE3J zRkau-7noU;6R4U(3KObIt;=g-&pxRA2(IC~Fza7@D!QmWb8@%HHdVN}d!1l#jZ>riT3ODH)--t|pUow7T4@My8g z!7u}{GDkKDivsr>mBzy|sErBeBZH1o_wRC|1Ver2b>+MV!> z?;h`ou>uf9JR`OMx+MmKd>D-x={uEt(Ql!tBb7m=*Jw5bFZGo6dmJq*^&q%ZRO3gy0+rQd;A#! z{3;@onO4qk-a>{MBO<~_GEq*!ymsFjc0f-3bn9T^rJ!hDZNhnpIiP-Z*_q`qU3WRs zn>wbKpF4&Y_Wx!d#nBb5W-0WGrKuA3yuAg8-*>2`zf^}oAU};LnWj+l<+CF(C&rD6 zF`!b|LZN%vPgxV<^m>+~q=7RA1V5I4P8}L~gTsXP2@ZEK2T>U6e1%G0n3y2T&8BJ3 z>VssYQ4-}W!E(Pt>DLfRRrlPIW%BRF3>kd49i*Fjgu~u&WDD#V?`uy^! zAMwRNtxNL8w{)?kZq8|q$L`QF{NW(8If8p())8}&+rW@1gfmL^?DU86W^OWdI^P=S zk#F-QakC0UsO_kzL5JJin3byW2a0vl=w8erA(qVMzPQKMJdm*;CR{9r+8=pJyY_A8 z@U0^3TB=?(ETrl6#3pHSk_rw z;2jIdwqJIs_mTQ|99MgIA2hab>G6pwtI?@mCbBVp0pAV+k>?+xTd!Zt;|X2H8mQ!k zp@lMwo$hdG&Wun))2z)~e8?vaUM+ zBSisNYZ5*m43Qhd(Lx2qJe)cGzwDyowfUU|Dznj{H#jfo)~lJdoRb%Ac8Ptl!zm0t zfVr$Zd}T)qx|nM#Br)*E*;`;D#5{7A8uK(;VOdAk%U@=cVrY%@5zg(yKp-%YjT>o--AbkI=gb&id2@$@GgjTTWLF8^a_9$sZEk{;4wcJjG&fxxdPC?7T(Dg@9R8YJ&3 zT7wgp@QRZ7P#&ba(1T6aTt6RyI~{h)A-1*$7Rc$%jI^UTO=aVGo;@H@vvfno6NB*H zLXFQ%g@e zaflQkI5Oe*AR+s0et!_o&NudjD;(+}fR`rO~X&B@`Zg6eh9fC7~BD#$?m z`F>Kn*Qd2(wZ>iqFzHW8fb1xrDtsl!LVE%z~7hJ@{io_XN=S z7wB_bfH{2e8$s7oZu^X;uMZhoT;9X&yh+G5=4XY_aKhG=Tae*M43kGa*c{!z#P7%X*jq4 zZO63OtB0op6I=!Cma}C}R(>)SQIu2ZYiVLwy-wi6_c5Ri1SKRw(tB$8a~o4@R5n54ORQjU7C8}ulaK*Dl?9h3$nb@kWNOZhoU&VYpJ zrpnbX*`+kQ50t1KqW@6 zz9;c8Eu*1?tJ7y1Ijrb!h!c)&8toa-R(0Ajf5unOdFAc=}^r%$U-Qdu+E z-&p5M%q~70SuA_*Z0}qy;%~a31f1A*Mu{q7!l6Xl#ZlYiqL@L(Ka>l$45c_w8v|4CZjTHt#He2tYL z#m)YZY=lQn10)-V$E0j@AfAf$zO_(4I!|bc`ia;@cFfm4-#CnI16aSl7BO9o99J+# zJu5~YZ<#<92_MNGmTtc|F#?ysHHEfg*pwX+MdmD0X#=Av{4pBenqrovl9-^<0Zv+D zG~{H-zXa_v8w$i~T*{_jclCZLDv!s*0%l?ul6O3EqGh+{MQG*VFfQ|Z9Lm&$z9py@qTOnVZtp?u3>aeV7_RVf3oyhrH$R_ zh}ew`&WhPlU#1X|E*a0XE;EK>jA5e`1tp9EIx4E)X3>H*Zv0lkIDtS)=xDJoy02w+ zCYG;&dKj6IgsHWCu32)n1!1q_oFYjBIFq4k$OvJ^&j%CcZ+=`vQG9>9HFITR7Gqhx zV&zNI75qKgE?Rj)(&eY8dg6VC(Cfp#Qojw7(p7p`RvGT)&3S{>qs6hQ=V^RS7uUPE zCKc^}aoO<*dGhK zXJH~(tv2?18a+0uHA&q?WiH_3Kpk>k{XrHL7j2y-Hg=u&(XXgcYuRa!Hj=~8PD|^L ziV)U_#X!|YYbw65t3!JW)lmR(U`StGOWJx0N(p+LV`TbKV1Lu@cLYe}CD8c>~I z4sdT2IlAyDr}?XXULiC##;K&dNc@8P$E4Qlix@;gu4Ek_!7PIxW8S{|A0a$j1RG_^ zeZrHd{A;;2vaagJ8RuQNI$!t{tP4^)>d0bRTUk?X>SnoybpX7}E!k(5l7E)^EyBSR zXQf5WGa={O(vOtWO||rP?FKCd*-ANeOXb3N@?+8Dgfp$p{Hd*PIF5xRB9V|8NAh)p z3@Z*3S<#|9c#cndu=#Db;=Y=8?7>}nu4rkA3B#o1?pod=2QL)FkbBYM$^F;iNHwZ$ z$CZ$K7;}3s(L3*D`L6F#p=bmcmFdysh#kjNMLr!oZp*#3Qja**$~13bQ(&BX%gv^H zZ@CCQN@C^w8pEcON*{NDxV3m;+pJf0_^qIf-F9(>*$Z;ooCyre6uV0bU6j86EhxsloF=Ef z9hJg^W1g^caj#n{)I%jDZ4Rd;Tj)H8JIR&$!0^MYH>*Pll4hD>YXwe4en3WosztjR(Zvu{ywojm@6Ky zIZU4Oo9mp>#h$#tkAoxkQKY6%wAVi7ICcUwZiz*+NjJL~6cm%?-e5t^TNGy$EAzY^ z*%EMhy0^zWCP-I`;ps*E@>zY+k2qJ$YPiwgMxC)4HGTPV5S9|#VuU%TFzi{Pn$70% z7I(TWrtWQx6@8)`yv7k4v>a`&z{&Z7T0lGPydmNb3sCNY zWNY)7#-~bbeeWWWDKBoPRhHf|2-;lH_@-fGHG<$STo~kP=HM42XGh^gd=l%%c6TDi zLhY~+XDpjFRz0Qrc;@WZe&VhC&!<`XxdYvS^q+tM_XWR5?>A#_Q_)eCX-z@J4#dR6u z#abkKc4Q3qMeAOfvDzeLsSeenAG_an)Eq#M*259nF`aO*3-qayR5cHqcDP{b4a~c% zPLAc*^boiZG5=Dt4t4qmU8>N^0e*VF4Z38 z0(1436W?;ZEsv@uxL3Qab^@a=VfWA*IVI~@tiLoAgPVKBl zK-VX^<1jy+<3eXs3Pg$*B_sl5ZqTI@8**3*C-kMBB@R$Oev>@e<_ouR{&ct$zJS%R zjxnO|E>h{dW#8e{WhU(tg$cV|Tbx5X{L*NY=wdo7MH`0~gwRkKrEvEY7*bIwhr{1z*kNS1~j2%;s@Q zB97CNP?eehS^VYN!K*S_(lwwoz{oSy)kh{~V~_)4y?!$@-|E?keHbMybx^Km`u+5??Xw2s9dxtdM2HAGucA_ z#B<+J-z%sO$*Ji0@O(K^(~gluMUP}@~tZL1H6^H+$s?=<2TH}>SxhUO&cvP9E`{o;08FJrk>fF-rrQ&ybh+` zpXGb@7(Qg7X0V(^1JIt$dxVK+&B2ht%++lRjQDgPsL{7wxTfCS$pYenS=-c%H=XK1Q?5+K@meMegFrWn;02MZuasToSw0b&);^IqCSf z@7`4T_unhyt}OGI9`V9e^lRqv&e|#Z4Dv3AsUIlQ^<3yqNIdY}i7Gs}>L5+CHjnL= z^K?^&*q5|08s!^f5~iXoM9_ebTXlkd46u-=67##X7qLeq!K;p!P|sK%lDji3*P%zy zgMatL?D*DBviXhOq5GU%GKRtKzVhAWQVLz2mBxxSsE_o+r~5t}=$D<{RzDv9y56e! zLnA`6y^42S{o9zl1pJ8%ZS(Q;;*KNCGnRk*p)VXJEdN|NF?*$1t$vo0xC&$u+EW^A z&g3B$zy60Q=w^m~cOl;=eP3D1A^-i?{#&l4P)!2I+6TW&U>`*2Z&CrT;cjruC9ryl z_~mLbpRbe5n^@J%toX&IQP7;Wv@e1+SDrAJMxTi^8>{l0k^}mL{zi^9e-!vu>4K67 z{%LVJZ$mfHZze*j>Fn9Y9bKEgck9QBm)}Z@P8WFr(Ct z@*UdRwNT8|^sLVX&4ycDUr`Ptn~VKeu+A}($BTuW+2t0oIl8T}bzm`1bqmO1WJw$Y z5!sR43tIv?!$#*Kr0nLk3J)RH$iL))E5vE3jci%Bh_z4R4e1GOrkj@~hs zGW;X`2O|t1h*)I2bKX12=#@!@uIUeOnEKKz{N7pn(RsKD7g6u>{)zzRhmbC`Q`Mr} ziK*O`7$i;Sg4(NATo|OPFBFQ+bw3rCTe^YrS3ECQk~0u<-GI8I=r_SJ zl^bg1PBihQx7aB_3blYRKJGI4I|tY>_grqeI-Z&DO1}%jplRnfeiVD^yUnq_!~j`e zy}H3drM^c)!UebayS;a`*<;qaD6^O2SNLaM=4Y9*TkwA-0gXMV0jbDAsIylCub2f0=xX0e|KViXy3+ z;aru^1irvtWz8SdwACE1{s7a$yxNz!f&=1^5M4QpY0(boN7g+&@bJTM|SU& zIwEk`z()GM;kl7@F0Lcp6u#8EO|~ZPp2@#Dx|T~o@UOV;GhWwTT~%y9)_W`@TYWnL zDJ*hj{W=%rzy+Dc9nQn$Ho)pR_FB~*)NqIYCM4$1D7c-Y`p>7T3c(0R*F|Tuq z<8f9bHfm~Zw6xxqX`Q>OocIja+|@S8O3o#ZYuw=3qJ+a__7as9GMhn5g5AFaq|*vp zQ~yvqg5agy2mii^7<{v#o8+I?hD}JvQr)X50*M4}dg;d@IY()|aSIM|y-voZucR`ZKd~bS@MKg8oI0%8o zoN!wCRh>UGfe!EJJu%hv8O-GF<%>_TNoWJ1)Yxg&_cM+0m#p1~1)K$L1Ad*YC)3vs zGB9!gi+7DhG^q9mn;-DX^L&$4&3Llpb+&q4KKj5;xvO>dXcv`M3J!mO6OoeV5Lhg_ z4Y^MZ`N<3OFTg-T(#=pQhq$mH=H>GYHuj6lj0`bvVs0>z5`2vg3XIf1J}7u^|5U`9 z#E{QZTh-gK-yKLbj*%h~P)pB@sbU{i;-xKjRyWrJh{G<9IJm+1k!tpyQ|kI|A$>ad z*JE=#$3MOHZ;Ho;_sYFli|qavhZ|T^=`}w>g%eQy)c|2`o^N%s?~;J}$Wfkygb#V% z?MjU^=LWwz`+QxFMAa+#F(i{23><(62Y>0Bv~HXmy&%vKm-i<5gzxEZrYfji$%BK- zFTF(SqoJ?V<0`tow+!ac?k;A4hfmWhFR|N5q{wx#OR60QuUG|VxnFs+MBCjk<|Ua8_?v+F z=9_ZsUFiF)sBEtH|onWDPQ@*It=7$Szg`+Q`wdZ|6KEO#jnunef+U<#L;K`b@hXtjyc0Z z;x8h?)E+g;9&$9F*#gi!o3rYy@UHzA@2MX{9R@9r8^Xr$H+5pB)h9|c@{*QS2G-J6V}ai!PK`T=m8(c3Pl(+7Ipk0#5<7Ob*| zT1skAl(uziQsdU*(Glc1A+g-i!dR(kMeqoiTI6}n>K$%PPNj{_4w|*v{E?ma25XKA zw&)A6;X^%2{#f>a$UAf8VX}MeNvYDgI4~{s`3B!$X=hMr9rc|ODhOz`LP@{ZmG5~U zw&|PhK>s6sSj77_H#n(5n3NZ6b4d9ZBo-d;egt$*#n`vHhUQK6u8?ysjtki6OvOWN z#B&Q(I7Vb2@;qIi}`OWp1EK5jb;L)zQ1!wBaXj^Lu_kMbg`lg!(B zO>q|Bd&qkx(O`(C)%#*z%25vzo`i_PEPfz}8GjV99@XxlVnHRPKSGXpPrlWzWqrZj z{UKU?ZD%mq{aM&@Wq2-;C-x?t51$kYd-rRwX&8{{3WAu`k3=4F^h3P_kRMgrmL8tO z5o?#QDo%kFQnC~oe&>x_{dD$#roBK5S|P~w(=4ZB+&GiQYYHQVS!J{W3K0l$Ze&j9 z8(9qa=P-5yXe($}+n+Q&0v4-4x_5@Z*7s0yZE;>?R%q!#&9{uIz{a`hOJyg*GOrTKQTn_m{mbSp~VS)czZ@e6pu41W1KgB zg^)~X;&*&4RusMv!vn)(Iuas1}e~8 z1{q1aT};Y^&ly`YhOGM_1W#;dR9|&V!`$>o*>x_oTO!rAR(1xi<74+)>=tU7Jl=H35aA6h@Pd;K6LW zzKI{#$290qF;h9u2Cfl_(efQFK}c>Pz6>YI?go;`GGnts_@(H&TXM7`N;aK<~$5NuhiF_?G zF6?MJP026!MLLV`<}vY}n8M|pq8tOp8M~4S^*>JF<~+o*G0hE?^oDOf@^*6~(Y zg;C2Pdttuhep=9lU|05i0xL<~mAOb-$gmB^*JmTFuqY&&uC^;Yw_NG8Iy^8R##-*{ICvnNt*@($}5s0%1!MW`_QCVhJowD6=hT{+p7 z$!>e(Rtx5&^MfLL#B78x)-3W)k(RCoIl!*@Exx$bU3G>hsd2C^`_hXGO7m_MD?E)j5kC@->iQtp9XTGYncgbJ*2!z>~2KF zV*<6`0Xd#Cq~4KRo02d`p9#MfXEeRDd-}axnO7P5y;B>wNP`@1KJUjI{MR6(6movZ z*%z;_uYGJ7^iolW(k}aXc;)3$&Y#0!mAz1ICc|kM+D&M3zm}nM$HY1v#ArOh^TgK{ zJEG^@kijtzJ?kVu2O3Z%IOe_w2pqiIywqHph`zU*s|KUFebGxZ`eept40sB`we1LI zUYxZ<#w;ta3fux&ItDXSTIesy8{Q`e+K(B%pmBLgJcF{KL9@{)+2ulLTa5>5EcGuy zBf>@sPlnSHWdESj6_|hkLjo- zxu)s2Cm|%N@pq!{k*M>*$qws=Y=Idir(lv8KR8<>Y=@J(2Sebe-%S(^ZKKZ_+-pr~m#8B{c2KplN)k z*_j8TmZRKcHspw-G?@m~c)~M9W?K|GkW^l~X5Hihk4V{gkr1?9sprh@Cp!x{O1=Y^ zn~oNpe=1r?FWhg)22TNAqSx}>!tzY6%dJlW0g1Z7!5oB-jK%fXDwLDEF-}nfVf-$f z{1J4tvGz>)j4+vW_qbX5Kt9g*RRXvS0K_OhB$`W>#~OU%pPzQ_L@l&+qU=BIvChjI zPMp{A+GPl0d8w)VuM^OAwYXt)Y+Z$0-`0aM1TWX|d~qSe{|oEbWp4M6qqLC+XlTmR z;VV6NeEZY3zIkBbQFr>IBV5|&Q&OArQk*o@%qP<}$64kK0}Ts|?NB@dnj*n(g;E~& zbR=g)E8Nn=RZ0FflFQn3VVBfW3i;B|4MYzIsdF%KzV3tPw5u0TA2lPMUgSbV7tQ%* zo7vXj<_f%+3yyATL?{8qOzA!OU8EFnBi2mxyx@$CX066wmOButVdLpXN$KllJAVV) z!0yLs?_ylj`#dQX`agR4KOETq0zxjimW3hrJFZlyTCBl=>~0JYh{=YPGFFJ?_La5@ z5P!{oXMe!|`~(m&-%4}G|A_j3w;X<%TWDkX?KQ2T7H)U;VsD*unz|afr!DXOAF@%q AmH+?% literal 40639 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 Date: Tue, 8 Oct 2019 08:54:05 -0700 Subject: [PATCH 30/41] updated RFC Resolve-errorrecord definition --- 1-Draft/RFC00XX-Update-Error-View.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 08bf1455..29ce8731 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -80,6 +80,14 @@ Line | 3. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed view of the fully qualified error, including nested inner exceptions. +- Rendering is recursive for nested objects for Exceptions, InvocationInfo, +and Arrays otherwise it uses ToString(). +- Members that are empty or null are not shown. +- There is logic that if the console is less than or equal to 120 columns wide, +it uses 4 spaces to indent to get more text on screen, otherwise it indents based +on property name lengths. +- A new FormatAccentColor is introduced to highlight property names from their values. This can be used later to add accents to tables and list formatting. +- Removed some commented out unneeded code from ConciseView. - Resolve-ErrorRecord will provide the following: @@ -141,6 +149,15 @@ PS C:\> Resolve-ErrorRecord -Newest 3 **** Detailed message here **** ``` +__Example 4__ +Maintain the ErrorRecord object for additional pipeline operations + +```PowerShell +PS C:\> Resolve-ErrorRecord -Newest 3 | Select-String -Pattern 'MyFile.txt' + +**** Detailed message here **** +``` + ## Alternate Proposals and Considerations __Alternative/additional view customization__ From ec0b74516fecb6eb1fdb85707284007774fa5eac Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 8 Oct 2019 08:56:33 -0700 Subject: [PATCH 31/41] Corected typos --- 1-Draft/RFC00XX-Update-Error-View.md | 1 + 1 file changed, 1 insertion(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 29ce8731..b53b72ef 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -80,6 +80,7 @@ Line | 3. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed view of the fully qualified error, including nested inner exceptions. + - Rendering is recursive for nested objects for Exceptions, InvocationInfo, and Arrays otherwise it uses ToString(). - Members that are empty or null are not shown. From 493a3a7fd97cc6ed8a2f5650ee75cdb9f9715442 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 8 Oct 2019 09:12:35 -0700 Subject: [PATCH 32/41] Updated RFC with Prefix conditions --- 1-Draft/RFC00XX-Update-Error-View.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index b53b72ef..f4450a88 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -50,6 +50,14 @@ __Key Design Considerations__ 1. To reduce confusion and improve debugging success for new and occasional users, error messages should call WriteErrorLine to produce a simplified message for interactive CLI users. +- The error message will contain a prefix as described: + + + If the error is an Exception, it prefixes with Exception:. + + If the error has InvocationInfo.MyCommand, it prefixes the command. + + If the error has InvocationName, CategoryInfo.Category, or CategoryInfo.Reason, +the message will prefix these. + + Only if none of those exist does it actually use Error:. + - Simplified error message syntax from 'Message'. (See graphic below) ```powershell From 8d0498e40c94927cfb6550a52df6b9b5d102264b Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 15 Oct 2019 10:33:55 -0700 Subject: [PATCH 33/41] update RFC to reflect new cmdlet name --- 1-Draft/RFC00XX-Update-Error-View.md | 101 +++++++++++++-------------- 1 file changed, 49 insertions(+), 52 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index f4450a88..3c955b74 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -10,30 +10,29 @@ Comments Due: 10/31/2019 # Update $ErrorView with simplified views for Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently -provides a level of detail that obscures the exception message from being recognized and read by -new or occasional PowerShell users. The addition of a simplified error view will improve both -comprehension and troubleshooting experience. A new cmdlet 'Resolve-ErrorRecord' will provide +provides a level of detail that obscures the exception message from being recognized and read by new +or occasional PowerShell users. The addition of a simplified error view will improve both +comprehension and troubleshooting experience. A new cmdlet `Get-Error` will provide complete detailed view of the fully qualified error when desired. ## Motivation -The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable -through the preference variable $ErrorView. -This RFC describes Changing '$ErrorView to an enumeration and adding one additional dynamic view -to improve readability; 'ConciseView' +The on-screen experience, when receiving an error message, is controlled through the views +NormalView (the default) and CategoryView. These are user selectable through the preference variable +**$ErrorView**. This RFC describes Changing **$ErrorView** to an enumeration and adding one +additional dynamic view to improve readability; 'ConciseView' -- ConciseView - provides a concise error message suitable for new or occasional PowerShell users -and a refactored view for advanced module builders. If the error is not from a script or parser -error, then it's a single line error message. Otherwise, you get a multiline error message that -contains the error and a pointer and error message showing where the error is in that line. -If the terminal doesn't support Virtual Terminal, then vt100 color codes are not used. +- ConciseView - provides a concise error message suitable for new or occasional PowerShell users and + a refactored view for advanced module builders. If the error is not from a script or parser error, + then it's a single line error message. Otherwise, you get a multiline error message that contains + the error, a pointer and error message showing where the error is in that line. If the terminal + doesn't support Virtual Terminal, then vt100 color codes are not used. -A comprehensive detailed view of the fully qualified error, including inner exceptions, -will be provided by the `Resolve-ErrorRecord` cmdlet. +A comprehensive detailed view of the fully qualified error, including inner exceptions, will be +provided by the `Get-Error` cmdlet. -'$ErrorView' shall contain the original views for backward compatibility and to -lessen this breaking change. The view list is as follows: +**$ErrorView** shall contain the original views for backward compatibility and to lessen this +breaking change. The view list is as follows: - ConciseView - NormalView @@ -41,22 +40,21 @@ lessen this breaking change. The view list is as follows: ## Specification -The proposal is to add one new view to help improve error message comprehension -based on user needs. For in-depth troubleshooting, a new cmdlet -Resolve-ErrorRecord to provide detailed error information. +The proposal is to add one new view to help improve error message comprehension based on user needs. +For in-depth troubleshooting, a new cmdlet Get-Error to provide detailed error information. __Key Design Considerations__ -1. To reduce confusion and improve debugging success for new and occasional users, -error messages should call WriteErrorLine to produce a simplified message for interactive CLI users. +1. To reduce confusion and improve debugging success for new and occasional users, error messages + should call WriteErrorLine to produce a simplified message for interactive CLI users. - The error message will contain a prefix as described: - + If the error is an Exception, it prefixes with Exception:. - + If the error has InvocationInfo.MyCommand, it prefixes the command. - + If the error has InvocationName, CategoryInfo.Category, or CategoryInfo.Reason, -the message will prefix these. - + Only if none of those exist does it actually use Error:. + - If the error is an Exception, it prefixes with Exception:. + - If the error has InvocationInfo.MyCommand, it prefixes the command. + - If the error has InvocationName, CategoryInfo.Category, or CategoryInfo.Reason, the message + will prefix these. + - Only if none of those exist does it actually use Error:. - Simplified error message syntax from 'Message'. (See graphic below) @@ -65,13 +63,13 @@ PS C:\> Get-Childitem -Path c:\notreal Get-Childitem: Cannot find path ‘C:\notreal’ because it does not exist ``` -2. To improve script debugging for advanced module builders and scripters, -a refactored error view will be displayed. If the error is not from a script or parser -error, then it's a single line error message. Otherwise, you get a multiline error message that -contains the error and a pointer and error message showing where the error is in that line. +2. To improve script debugging for advanced module builders and scripters, a refactored error view + will be displayed. If the error is not from a script or parser error, then it's a single line + error message. Otherwise, you get a multiline error message that contains the error and a pointer + and error message showing where the error is in that line. -- A new property ErrorAccentColor is added to support changing the accent color of the error message. -If the terminal doesn't support Virtual Terminal, then vt100 color codes are not used. +- A new property **ErrorAccentColor** is added to support changing the accent color of the error + message. If the terminal doesn't support Virtual Terminal, then vt100 color codes are not used. ```powershell PS C:\> .\MyScript.ps1 @@ -86,28 +84,27 @@ Line | ![Message and Analytic](.\RFC00XX-Update-Error-View.png) -3. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed -view of the fully qualified error, including nested inner exceptions. +3. A new cmdlet `Get-Error` will produce comprehensive detailed view of the fully qualified error, + including nested inner exceptions. -- Rendering is recursive for nested objects for Exceptions, InvocationInfo, -and Arrays otherwise it uses ToString(). +- Rendering is recursive for nested objects for Exceptions, InvocationInfo, and Arrays otherwise it + uses ToString(). - Members that are empty or null are not shown. -- There is logic that if the console is less than or equal to 120 columns wide, -it uses 4 spaces to indent to get more text on screen, otherwise it indents based -on property name lengths. -- A new FormatAccentColor is introduced to highlight property names from their values. This can be used later to add accents to tables and list formatting. +- Indentation uses 4 spaces for nested objects +- A new FormatAccentColor is introduced to highlight property names from their values. This can be + used later to add accents to tables and list formatting. - Removed some commented out unneeded code from ConciseView. -- Resolve-ErrorRecord will provide the following: +- `Get-Error` will provide the following: - + Display Last Error ($Error[0]) – default behavior - + Accept Pipeline input – support $error[1] | - + Option for the Newest X errors in the session + - Display the newest Error ($Error[0]) – default behavior + - Accept Pipeline input – support $error[1] | + - Option for the Newest X errors in the session (This will be aliased with Last) -- Resolve-ErrorRecord syntax +- `Get-Error` syntax ```powershell -Resolve-ErrorRecord [-InputObject ] [-Newest ] [-All] [] +Get-Error [-InputObject ] [-Newest ] [-All] [] ``` First parameter set @@ -125,14 +122,14 @@ Error occurs in Interactive mode. Cmdlet displays details of the last error disp PS C:\> Get-Childitem -Path c:\notreal Get-ChildItem: Cannot find path ‘C:\notreal’ because it does not exist -PS C:\test> Resolve-ErrorRecord +PS C:\test> Get-Error **** Detailed message here **** ``` __Example 2__ Error occurs in script, shows error from view 'Analytic', and then is piped -from $error array to 'Resolve-ErrorRecord' to display more details. +from $error array to 'Get-Error' to display more details. ```powershell PS C:\> .\MyScript.ps1 @@ -142,7 +139,7 @@ Get-ChildItem: in /Users/Username/GitHub/Errorview/script.test.ps1 | ^^^ Cannot find path 'C:\notreal' because it does not exist. * Help: Additional help information provided here -PS C:\> $error[0] | Resolve-ErrorRecord +PS C:\> $error[0] | Get-Error **** Detailed message here **** ``` @@ -151,7 +148,7 @@ __Example 3__ Display detailed error information for the most recent 3 errors. ```powershell -PS C:\> Resolve-ErrorRecord -Newest 3 +PS C:\> Get-Error -Newest 3 **** Detailed message here **** **** Detailed message here **** @@ -162,7 +159,7 @@ __Example 4__ Maintain the ErrorRecord object for additional pipeline operations ```PowerShell -PS C:\> Resolve-ErrorRecord -Newest 3 | Select-String -Pattern 'MyFile.txt' +PS C:\> Get-Error -Newest 3 | Select-String -Pattern 'MyFile.txt' **** Detailed message here **** ``` From 34a3a622e3baa6a907934000ee549669c018c72a Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 21 Oct 2019 13:42:27 -0700 Subject: [PATCH 34/41] updated RFC with Concise view as default view --- 1-Draft/RFC00XX-Update-Error-View.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 3c955b74..f40c2421 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -40,8 +40,9 @@ breaking change. The view list is as follows: ## Specification -The proposal is to add one new view to help improve error message comprehension based on user needs. -For in-depth troubleshooting, a new cmdlet Get-Error to provide detailed error information. +The proposal is to add one new view, 'ConciseView', to help improve error message comprehension. +ConciseView will be the default view. For in-depth error object information, a new cmdlet +'Get-Error' provides detailed error information. __Key Design Considerations__ From 3493c6bb8fa86e3725174cbd10311226cc6f83ae Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Wed, 23 Oct 2019 15:24:25 -0700 Subject: [PATCH 35/41] Update RFC00XX-Update-Error-View.md --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index f40c2421..7810e143 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -83,7 +83,7 @@ Line | - An example is in the image below: -![Message and Analytic](.\RFC00XX-Update-Error-View.png) +![Message and Analytic](RFC00XX-Update-Error-View.png) 3. A new cmdlet `Get-Error` will produce comprehensive detailed view of the fully qualified error, including nested inner exceptions. From 04559eda0e159d046ea1430af0a91c930241c81e Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 24 Oct 2019 08:59:33 -0700 Subject: [PATCH 36/41] updated image to reflect cuurent code --- 1-Draft/RFC00XX-Update-Error-View.png | Bin 35199 -> 54602 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index d62af555c62a4c40234950fc49000c671ea1f25a..842050a9ac6016f72889e0d295fe986fd7e58060 100644 GIT binary patch literal 54602 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 literal 35199 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 AmH+?% From eaecab04d6cb61455a14949c206ac9c67f3335b5 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 16 Jan 2020 08:26:23 -0800 Subject: [PATCH 37/41] update to reflect implementation --- 1-Draft/RFC00XX-Update-Error-View.md | 9 ++------- 1-Draft/RFC00XX-Update-Error-View.png | Bin 54602 -> 0 bytes 2 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 1-Draft/RFC00XX-Update-Error-View.png diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 7810e143..46666e6b 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -74,17 +74,12 @@ Get-Childitem: Cannot find path ‘C:\notreal’ because it does not exist ```powershell PS C:\> .\MyScript.ps1 -Get-ChildItem: in /Users/Username/GitHub/Errorview/script.test.ps1 +Get-ChildItem: C:\GitHub\MyScript.ps1 Line | 15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. - * Help: Additional help information provided here + | ^ Cannot find path 'C:\notreal' because it does not exist. ``` -- An example is in the image below: - -![Message and Analytic](RFC00XX-Update-Error-View.png) - 3. A new cmdlet `Get-Error` will produce comprehensive detailed view of the fully qualified error, including nested inner exceptions. diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png deleted file mode 100644 index 842050a9ac6016f72889e0d295fe986fd7e58060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54602 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 From a97cbfec7062a44590277279c28c2331fbaf329e Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 16 Jan 2020 13:55:19 -0800 Subject: [PATCH 38/41] update to match implementation - remove carets --- 1-Draft/RFC00XX-Update-Error-View.md | 36 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 46666e6b..e4d99aef 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -51,13 +51,13 @@ __Key Design Considerations__ - The error message will contain a prefix as described: - - If the error is an Exception, it prefixes with Exception:. - - If the error has InvocationInfo.MyCommand, it prefixes the command. - - If the error has InvocationName, CategoryInfo.Category, or CategoryInfo.Reason, the message + - If the error is an Exception, it prefixes with Exception:. + - If the error has InvocationInfo.MyCommand, it prefixes the command. + - If the error has InvocationName, CategoryInfo.Category, or CategoryInfo.Reason, the message will prefix these. - - Only if none of those exist does it actually use Error:. + - Only if none of those exist does it actually use Error:. -- Simplified error message syntax from 'Message'. (See graphic below) +- Simplified error message syntax from 'Message'. (See below) ```powershell PS C:\> Get-Childitem -Path c:\notreal @@ -76,8 +76,20 @@ Get-Childitem: Cannot find path ‘C:\notreal’ because it does not exist PS C:\> .\MyScript.ps1 Get-ChildItem: C:\GitHub\MyScript.ps1 Line | -15 | Get-ChildItem -Path c:\notreal - | ^ Cannot find path 'C:\notreal' because it does not exist. + 15 | Get-ChildItem -Path c:\NotReal + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + | Cannot find path 'C:\NotReal' because it does not exist. +``` + +- The error message is truncated and displayed using the **MessagePosition** property of for line wrapping + +```powershell +PS C:\> .\MyScript.ps1 +Selct-object: C:\GitHub\MyScript.ps1 +Line | + 25 | Get-Process | Selct-object -property NotReal + | ~~~~~~~~~~~~ + | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, or | operable program. Check the spelling of the name, or if a path was included, verify that the | path is correct and try again. ``` 3. A new cmdlet `Get-Error` will produce comprehensive detailed view of the fully qualified error, @@ -129,11 +141,11 @@ from $error array to 'Get-Error' to display more details. ```powershell PS C:\> .\MyScript.ps1 -Get-ChildItem: in /Users/Username/GitHub/Errorview/script.test.ps1 - | -15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. - * Help: Additional help information provided here +Selct-object: C:\GitHub\MyScript.ps1 +Line | + 25 | Get-Process | Selct-object -property NotReal + | ~~~~~~~~~~~~ + | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, or | operable program. Check the spelling of the name, or if a path was included, verify that the | path is correct and try again. PS C:\> $error[0] | Get-Error From 0cfab18869aafb8139107bcb124d649b929f9b5f Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 16 Jan 2020 13:58:44 -0800 Subject: [PATCH 39/41] update to correct readability flow --- 1-Draft/RFC00XX-Update-Error-View.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index e4d99aef..4ba881dc 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -89,7 +89,9 @@ Selct-object: C:\GitHub\MyScript.ps1 Line | 25 | Get-Process | Selct-object -property NotReal | ~~~~~~~~~~~~ - | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, or | operable program. Check the spelling of the name, or if a path was included, verify that the | path is correct and try again. + | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, + | or operable program. Check the spelling of the name, or if a path was included, + | verify that the | path is correct and try again. ``` 3. A new cmdlet `Get-Error` will produce comprehensive detailed view of the fully qualified error, @@ -145,7 +147,9 @@ Selct-object: C:\GitHub\MyScript.ps1 Line | 25 | Get-Process | Selct-object -property NotReal | ~~~~~~~~~~~~ - | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, or | operable program. Check the spelling of the name, or if a path was included, verify that the | path is correct and try again. + | The term 'Selct-object' is not recognized as the name of a cmdlet, function, script file, + | or operable program. Check the spelling of the name, or if a path was included, + | verify that the | path is correct and try again. PS C:\> $error[0] | Get-Error From 07807c7f3d76d5ede130dcfb1ac39923cdb3da70 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 16 Jan 2020 14:36:38 -0800 Subject: [PATCH 40/41] update messageposition property information --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 4ba881dc..0c5bbeac 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -81,7 +81,7 @@ Line | | Cannot find path 'C:\NotReal' because it does not exist. ``` -- The error message is truncated and displayed using the **MessagePosition** property of for line wrapping +- The error message is truncated and displayed by reusing the **MessagePosition** property of InvocationInfo ```powershell PS C:\> .\MyScript.ps1 From e6cf93855f1336709eb57661260f3f1d139e8848 Mon Sep 17 00:00:00 2001 From: Joey Aiello Date: Wed, 29 Jan 2020 15:15:52 -0800 Subject: [PATCH 41/41] Prep RFC0048 - Updated Error View for merging --- .../RFC0048-Update-Error-View.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename 1-Draft/RFC00XX-Update-Error-View.md => 5-Final/RFC0048-Update-Error-View.md (99%) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/5-Final/RFC0048-Update-Error-View.md similarity index 99% rename from 1-Draft/RFC00XX-Update-Error-View.md rename to 5-Final/RFC0048-Update-Error-View.md index 0c5bbeac..f87fe500 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/5-Final/RFC0048-Update-Error-View.md @@ -1,8 +1,8 @@ --- RFC: Update $ErrorView with simplified views for Error Messages Author: Jason Helmick -Status: Draft -Version: 0.0.0 +Status: Final +Version: 1.0.0 Area: PowerShell Comments Due: 10/31/2019 ---