Skip to content

Conversation

@StephaneDelcroix
Copy link
Contributor

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Description

Fixes #33867

When inline StyleSheet content contains double quotes (e.g., in CSS placeholder strings like -maui-placeholder: "CSS Placeholder";), XSG was generating malformed C# code. The issue was that quotes weren't escaped for verbatim string literals.

Changes

In KnownMarkups.cs, the CSS content is now escaped by replacing " with "" before embedding in the generated verbatim string literal.

Test

Added Maui33867.xaml test that includes CSS with quoted content, matching the StyleSheetsPage.xaml from the sample app.

Fixes #33867

When inline StyleSheet content contains double quotes (e.g., in CSS
placeholder strings), the generated code was malformed because quotes
weren't escaped. In a verbatim string literal (@""), quotes must be
doubled (""). This fix escapes quotes in the CSS content before
generating the code.
Copilot AI review requested due to automatic review settings February 3, 2026 20:53
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes issue #33867 where the XAML Source Generator (XSG) generated malformed C# code when inline StyleSheet content contained double quotes (e.g., CSS placeholder strings like -maui-placeholder: "CSS Placeholder";). The fix escapes double quotes for verbatim string literals by doubling them ("""), which is the correct C# syntax for embedding quotes within verbatim string literals (@"...").

Changes:

  • Added quote escaping in KnownMarkups.cs for inline StyleSheet CSS content
  • Added comprehensive test (Maui33867.xaml and .xaml.cs) that validates the fix with both runtime and source generation

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
src/Controls/src/SourceGen/KnownMarkups.cs Escapes double quotes in CSS content before embedding in generated verbatim string literal
src/Controls/tests/Xaml.UnitTests/Issues/Maui33867.xaml Test XAML file with inline StyleSheet containing CSS with quoted placeholder text
src/Controls/tests/Xaml.UnitTests/Issues/Maui33867.xaml.cs xUnit test that verifies SourceGen compiles without errors and runtime inflation works correctly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[XSG] Inline StyleSheet with CDATA sections not parsed correctly

2 participants