It looks like it doesn't handle backslashes in Windows paths correctly
Version Used:
ms-dotnettools.csharp-2.130.5-win32-x6
Steps to Reproduce:
- In VS Code, on windows,
- Try the quick fix on an analyzer error. e.g., I had CA1873
- Hit "Configure CAXXXX severity -> None"
- See the error message pop up without any context where it came from
- See the stack trace in C# output
Expected Behavior:
Actual Behavior:
Details
[error] [codeAction/resolve] [LSP] System.Text.RegularExpressions.RegexParseException: Invalid pattern 'j:\devdrive\dev\vantage-2\holmes.model\holmes.model((.csproj))' at offset 27. Unrecognized escape sequence \h.
at System.Text.RegularExpressions.RegexParser.ScanCharEscape()
at System.Text.RegularExpressions.RegexParser.ScanBasicBackslash(Boolean scanOnly)
at System.Text.RegularExpressions.RegexParser.ScanBackslash(Boolean scanOnly)
at System.Text.RegularExpressions.RegexParser.Parse(String pattern, RegexOptions options, CultureInfo culture)
at System.Text.RegularExpressions.Regex..ctor(String pattern, CultureInfo culture)
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.CheckIfRuleExistsAndReplaceInFile(SourceText result, AnalyzerConfigDocument editorConfigDocument) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 595
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.GetNewAnalyzerConfigDocumentText(SourceText originalText, AnalyzerConfigDocument editorConfigDocument) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 400
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.ConfigureAsync(CancellationToken cancellationToken) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 274
at Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(IProgress1 progress, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/CodeActions/CodeAction.cs:line 310 at Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsCoreAsync(Solution originalSolution, IProgress1 progress, CancellationToken cancellationToken) in //src/Workspaces/Core/Portable/CodeActions/CodeAction.cs:line 247
at Microsoft.CodeAnalysis.LanguageServer.Handler.CodeActionResolveHandler.HandleRequestAsync(CodeAction codeAction, RequestContext context, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/CodeActions/CodeActionResolveHandler.cs:line 89
at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.StartRequestAsync[TRequest,TResponse](TRequest request, TRequestContext context, IMethodHandler handler, String language, CancellationToken cancellationToken)
It looks like it doesn't handle backslashes in Windows paths correctly
Version Used:
ms-dotnettools.csharp-2.130.5-win32-x6
Steps to Reproduce:
Expected Behavior:
Actual Behavior:
Details
[error] [codeAction/resolve] [LSP] System.Text.RegularExpressions.RegexParseException: Invalid pattern 'j:\devdrive\dev\vantage-2\holmes.model\holmes.model((.csproj))' at offset 27. Unrecognized escape sequence \h.
at System.Text.RegularExpressions.RegexParser.ScanCharEscape()
at System.Text.RegularExpressions.RegexParser.ScanBasicBackslash(Boolean scanOnly)
at System.Text.RegularExpressions.RegexParser.ScanBackslash(Boolean scanOnly)
at System.Text.RegularExpressions.RegexParser.Parse(String pattern, RegexOptions options, CultureInfo culture)
at System.Text.RegularExpressions.Regex..ctor(String pattern, CultureInfo culture)
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.CheckIfRuleExistsAndReplaceInFile(SourceText result, AnalyzerConfigDocument editorConfigDocument) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 595
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.GetNewAnalyzerConfigDocumentText(SourceText originalText, AnalyzerConfigDocument editorConfigDocument) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 400
at Microsoft.CodeAnalysis.CodeFixes.Configuration.ConfigurationUpdater.ConfigureAsync(CancellationToken cancellationToken) in //src/Features/Core/Portable/CodeFixes/Configuration/ConfigurationUpdater.cs:line 274
at Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(IProgress
1 progress, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/CodeActions/CodeAction.cs:line 310 at Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsCoreAsync(Solution originalSolution, IProgress1 progress, CancellationToken cancellationToken) in //src/Workspaces/Core/Portable/CodeActions/CodeAction.cs:line 247at Microsoft.CodeAnalysis.LanguageServer.Handler.CodeActionResolveHandler.HandleRequestAsync(CodeAction codeAction, RequestContext context, CancellationToken cancellationToken) in /_/src/LanguageServer/Protocol/Handler/CodeActions/CodeActionResolveHandler.cs:line 89
at Microsoft.CommonLanguageServerProtocol.Framework.QueueItem`1.StartRequestAsync[TRequest,TResponse](TRequest request, TRequestContext context, IMethodHandler handler, String language, CancellationToken cancellationToken)