Skip to content

Invalid regex in ConfigurationUpdater #83622

@parched

Description

@parched

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:

  1. In VS Code, on windows,
  2. Try the quick fix on an analyzer error. e.g., I had CA1873
  3. Hit "Configure CAXXXX severity -> None"
  4. See the error message pop up without any context where it came from
  5. See the stack trace in C# output
Image

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)

Metadata

Metadata

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions