Conversation
📝 WalkthroughWalkthroughAdded a new Roslyn Source Code Generator example ( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds a new RSCG example entry for Aigamo.MatchGenerator and updates the v2 site/book/export artifacts to include it in the global lists (counts bumped from 265 → 266).
Changes:
- Register Aigamo.MatchGenerator in the central generator datasets and exports (JSON/Excel/CSV/search index).
- Add the new example project (solution + csproj + demo sources), plus supporting metadata (description/readme/video/tour).
- Generate/update website & book pages to surface the new example and update counts/category/author pages.
Reviewed changes
Copilot reviewed 25 out of 27 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| v2/RSCGExamplesData/GeneratorDataRec.json | Adds Aigamo.MatchGenerator to the master generator registry. |
| v2/rscg_examples/Aigamo.MatchGenerator/video.json | Adds the scripted video steps for the new example. |
| v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/Program.cs | Demo usage of generated Match methods. |
| v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/EnumDemo.csproj | New demo project referencing Aigamo.MatchGenerator. |
| v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/CarTypes.cs | Types annotated with [GenerateMatch] for generation. |
| v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo.sln | Solution wrapper for the new example project. |
| v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour | CodeTour walkthrough for the new example. |
| v2/rscg_examples/Aigamo.MatchGenerator/readme.txt | Captured upstream readme content used for documentation. |
| v2/rscg_examples/Aigamo.MatchGenerator/nuget.txt | Package description text used in generated docs/search. |
| v2/rscg_examples/Aigamo.MatchGenerator/description.json | Metadata for the example page generation. |
| v2/rscg_examples_site/static/sources/Aigamo.MatchGenerator.zip | Published downloadable source bundle for the example. |
| v2/rscg_examples_site/static/exports/RSCG.xlsx | Regenerated Excel export including the new generator. |
| v2/rscg_examples_site/static/exports/RSCG.json | Regenerated JSON export including the new generator. |
| v2/rscg_examples_site/src/components/HomepageFeatures/index.js | Updates homepage example count to 266. |
| v2/rscg_examples_site/docs/RSCG-Examples/index.md | Updates category index counts/links to include the new example. |
| v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.md | New documentation page for Aigamo.MatchGenerator. |
| v2/rscg_examples_site/docs/indexRSCG.md | Updates the time-based list to include the new example. |
| v2/rscg_examples_site/docs/Categories/Enum.md | Updates Enum category page count/list with the new example. |
| v2/rscg_examples_site/docs/Categories/_PrimitiveEnum.mdx | Updates category snippet used for “SameCategory” blocks. |
| v2/rscg_examples_site/docs/Authors/Aigamo.md | Updates author page to include Aigamo.MatchGenerator. |
| v2/rscg_examples_site/docs/about.md | Updates overall generator count in About page. |
| v2/Generator/all.csv | Updates the generator inventory CSV (adds row 266). |
| v2/docFind.json | Updates search index entries for the new example page. |
| v2/book/pandocHTML.yaml | Adds the new example HTML to the book build inputs. |
| v2/book/list.html | Updates the book’s list page to include the new entry. |
| v2/book/examples/Aigamo.MatchGenerator.html | Adds the book HTML page for the new example. |
| README.md | Updates repository-level count and appends the new entry details. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } , | ||
| { | ||
| "ID":"Aigamo.MatchGenerator", | ||
| "Category": 19, | ||
| "dtStart": "2026-04-05T00:00:00", | ||
| "show": true | ||
| } |
There was a problem hiding this comment.
The entries in this JSON appear to be ordered by dtStart ascending (e.g., 2026-04-04, 2026-04-05, 2026-04-06, 2026-04-07). The newly added Aigamo.MatchGenerator item has dtStart 2026-04-05 but is appended after the 2026-04-07 entry, which breaks that ordering and makes the file harder to maintain (and may affect any code that assumes sorted input). Consider inserting this record next to the other 2026-04-05 entries (e.g., near TaggedEnum) instead of appending at the end.
| @@ -0,0 +1,24 @@ | |||
| // See https://aka.ms/new-console-template for more information | |||
| using EnumDemo; | |||
| using System.Reflection; | |||
There was a problem hiding this comment.
using System.Reflection; appears unused in this file and will produce a compiler warning (and may fail builds if warnings are treated as errors). Consider removing it.
| using System.Reflection; |
|
|
||
| ,{ | ||
| "file": "EnumDemo/obj/GX/TaggedEnum/TaggedEnum.TaggedEnumSourceGenerator/TaggedEnumAttribute.g.cs", | ||
| "description": "Generated File 5 from 5 : TaggedEnumAttribute.g.cs ", | ||
| "line": 1 | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "EnumDemo/obj/GX/TaggedEnum/TaggedEnum.TaggedEnumSourceGenerator/EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs", | ||
| "description": "Generated File 4 from 5 : EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs ", | ||
| "line": 1 | ||
| } | ||
|
|
||
| ,{ |
There was a problem hiding this comment.
This CodeTour references generated files under obj/GX/TaggedEnum/..., but the example project only references Aigamo.MatchGenerator (no TaggedEnum package and no [Tagged] usage in the source). This will cause the tour to point to files that don't exist for this example. Either remove the TaggedEnum steps or add the missing dependency/source so those generated files are actually produced.
| ,{ | |
| "file": "EnumDemo/obj/GX/TaggedEnum/TaggedEnum.TaggedEnumSourceGenerator/TaggedEnumAttribute.g.cs", | |
| "description": "Generated File 5 from 5 : TaggedEnumAttribute.g.cs ", | |
| "line": 1 | |
| } | |
| ,{ | |
| "file": "EnumDemo/obj/GX/TaggedEnum/TaggedEnum.TaggedEnumSourceGenerator/EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs", | |
| "description": "Generated File 4 from 5 : EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs ", | |
| "line": 1 | |
| } | |
| ,{ | |
| ,{ |
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\Aigamo.MatchGenerator\src\EnumDemo\obj\GX\TaggedEnum\TaggedEnum.TaggedEnumSourceGenerator\EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs" label="EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs" > | ||
| ```csharp showLineNumbers | ||
| // <auto-generated /> | ||
| #nullable enable | ||
| using System.Runtime.CompilerServices; | ||
| using System.Diagnostics.CodeAnalysis; | ||
| using System.Diagnostics; | ||
| using System.Text.Json; | ||
| using System.Text.Json.Serialization; | ||
| using TaggedEnum; | ||
|
|
||
| namespace EnumDemo; | ||
|
|
||
| [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute] | ||
| [global::System.CodeDom.Compiler.GeneratedCodeAttribute("TaggedEnum", "1.0")] |
There was a problem hiding this comment.
This page includes generated file tabs for TaggedEnum (e.g., obj/GX/TaggedEnum/...CarTypesTaggedEnum.g.cs and TaggedEnumAttribute.g.cs). However, the example source shown here uses [GenerateMatch] from Aigamo.MatchGenerator and the .csproj only references Aigamo.MatchGenerator, so TaggedEnum output should not be present. Please remove these TaggedEnum sections or update the example to actually generate them; otherwise the documentation will be incorrect/misleading.
| <TabItem value="D:\gth\RSCG_Examples\v2\rscg_examples\Aigamo.MatchGenerator\src\EnumDemo\obj\GX\TaggedEnum\TaggedEnum.TaggedEnumSourceGenerator\EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs" label="EnumDemoEnumDemo.CarTypesTaggedEnum.g.cs" > | |
| ```csharp showLineNumbers | |
| // <auto-generated /> | |
| #nullable enable | |
| using System.Runtime.CompilerServices; | |
| using System.Diagnostics.CodeAnalysis; | |
| using System.Diagnostics; | |
| using System.Text.Json; | |
| using System.Text.Json.Serialization; | |
| using TaggedEnum; | |
| namespace EnumDemo; | |
| [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute] | |
| [global::System.CodeDom.Compiler.GeneratedCodeAttribute("TaggedEnum", "1.0")] |
| - [Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F### by Scott Wlaschin](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/) | ||
| - [It Seems the C# Team Is Finally Considering Supporting Discriminated Unions - DEV Community](https://dev.to/canro91/it-seems-the-c-team-is-finally-considering-supporting-discriminated-unions-59k3) | ||
| - [salvois/DiscriminatedOnions: A stinky but tasty hack to emulate F#-like discriminated unions in C#](https://github.com/salvois/DiscriminatedOnions) |
There was a problem hiding this comment.
The link text Domain-Driven Design and F### by Scott Wlaschin looks like a markdown escaping issue and should be F# (e.g., escape the # or wrap F# in inline code) to avoid rendering it as heading markup.
| - [Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F### by Scott Wlaschin](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/) | |
| - [It Seems the C# Team Is Finally Considering Supporting Discriminated Unions - DEV Community](https://dev.to/canro91/it-seems-the-c-team-is-finally-considering-supporting-discriminated-unions-59k3) | |
| - [salvois/DiscriminatedOnions: A stinky but tasty hack to emulate F#-like discriminated unions in C#](https://github.com/salvois/DiscriminatedOnions) | |
| - [Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and `F#` by Scott Wlaschin](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/) | |
| - [It Seems the C# Team Is Finally Considering Supporting Discriminated Unions - DEV Community](https://dev.to/canro91/it-seems-the-c-team-is-finally-considering-supporting-discriminated-unions-59k3) | |
| - [salvois/DiscriminatedOnions: A stinky but tasty hack to emulate `F#`-like discriminated unions in C#](https://github.com/salvois/DiscriminatedOnions) |
| |266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | | ||
| |265| [lomapper by Junaid Desai ](/docs/lomapper)|2026-04-07 => 07 April 2026 | [Mapper](/docs/Categories/Mapper) | | ||
| |264| [Najlot.Audit.SourceGenerator by Najlot ](/docs/Najlot.Audit.SourceGenerator)|2026-04-06 => 06 April 2026 | [Audit](/docs/Categories/Audit) | |
There was a problem hiding this comment.
This page states the list is in "descending chronological order", but the first rows are not ordered by date (e.g., #266 is 2026-04-05 but appears above #265 2026-04-07 and #264 2026-04-06). Reorder the table rows to match the stated sort order (or update the heading/description if the intended order is by ID instead of date).
| |266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | | |
| |265| [lomapper by Junaid Desai ](/docs/lomapper)|2026-04-07 => 07 April 2026 | [Mapper](/docs/Categories/Mapper) | | |
| |264| [Najlot.Audit.SourceGenerator by Najlot ](/docs/Najlot.Audit.SourceGenerator)|2026-04-06 => 06 April 2026 | [Audit](/docs/Categories/Audit) | | |
| |265| [lomapper by Junaid Desai ](/docs/lomapper)|2026-04-07 => 07 April 2026 | [Mapper](/docs/Categories/Mapper) | | |
| |264| [Najlot.Audit.SourceGenerator by Najlot ](/docs/Najlot.Audit.SourceGenerator)|2026-04-06 => 06 April 2026 | [Audit](/docs/Categories/Audit) | | |
| |266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | |
| @@ -0,0 +1 @@ | |||
| Package Description No newline at end of file | |||
There was a problem hiding this comment.
nuget.txt is used as the package description in the generated docs, but it currently contains the placeholder text "Package Description". Consider replacing this with the actual NuGet package description so the example page and search index have meaningful content.
| Package Description | |
| Source generator for generating pattern-matching code in .NET applications. |
There was a problem hiding this comment.
Actionable comments posted: 10
🧹 Nitpick comments (3)
v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour (1)
27-53: Make the generated-file prerequisite explicit before these steps.These steps depend on
EnumDemo/obj/GX/...artifacts that exist only after generation. Add an explicit dedicated tour step immediately before Line 27 telling users to run build/run first, so the next file steps are reproducible.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour` around lines 27 - 53, Add an explicit preceding tour step that instructs the user to run build/run to generate the required artifacts before the steps that enumerate generated files; specifically, insert the new step immediately before the block that lists generated files such as TaggedEnumAttribute.g.cs, MaritalStatusMatchExtensions.g.cs and CarTypesMatchExtensions.g.cs so the subsequent steps that reference the EnumDemo/obj/GX artifacts are reproducible.README.md (1)
27-27: Fix sentence grammar for readability.Line 27 reads awkwardly (“tested you can see…”). Please split into two clauses so it’s easier to read.
✍️ Suggested wording tweak
-Those are the 266 Roslyn Source Code Generators that I have tested you can see and download source code example. +These are the 266 Roslyn Source Code Generators that I have tested; you can see and download the source code examples.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 27, Replace the awkward single sentence "Those are the 266 Roslyn Source Code Generators that I have tested you can see and download source code example." with two clearer clauses; for example: "These are the 266 Roslyn Source Code Generators that I have tested. You can view and download the source code examples." Locate and update that sentence in the README to improve grammar and readability.v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/Program.cs (1)
3-3: Unused import:System.Reflectionis not used in this file.This import can be removed to keep the demo code clean.
Suggested fix
// See https://aka.ms/new-console-template for more information using EnumDemo; -using System.Reflection;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/Program.cs` at line 3, Remove the unused using directive System.Reflection from the top of Program.cs; locate the Program class/file (Program.cs) in the EnumDemo project and delete the line "using System.Reflection;" so only necessary usings remain and the demo compiles without unused imports.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Line 31: The README contains a generated date string "Generated on :
2026-04-05" that does not match the PR creation date (Apr 4, 2026); update the
generation process to use the PR creation timestamp (or consistently use UTC)
and timezone-aware formatting so the generated date matches the PR creation
time, then regenerate the README to replace the "Generated on : YYYY-MM-DD" line
with the corrected date; locate the generator that emits the "Generated on :"
line and modify it to pull the PR creation time from the CI/PR metadata or
convert times to a single canonical timezone before formatting.
In `@v2/book/list.html`:
- Line 20: The heading text in v2/book/list.html contains a raw '>' character
("This is the list of 266 RSCG with examples =>") that violates HTMLHint
spec-char-escape; update that heading (the line containing that exact string) to
escape the greater-than sign (replace '>' with '>') so the markup is
lint-clean while preserving the visible text.
In `@v2/rscg_examples_site/docs/Authors/Aigamo.md`:
- Line 8: The author entry for Aigamo.MatchGenerator contains a future-dated
metadata value "2026-04-05"; update that date to the correct
publication/addition date (e.g., today's or the actual release date) in the
Aigamo.MatchGenerator line so the entry's chronology is accurate and no future
date remains.
In `@v2/rscg_examples_site/docs/indexRSCG.md`:
- Around line 10-12: The document heading "## 266 RSCG with examples in
descending chronological order" claims descending chronological order but the
rows around the dates "2026-04-05", "2026-04-07", and "2026-04-06" are out of
order; either reorder those list rows so dates descend (place 2026-04-07 first,
then 2026-04-06, then 2026-04-05) or change the heading text to remove the
descending-chronological claim; update the block containing the three date lines
so the order matches the heading and ensure the same fix is applied to the other
instances noted (lines 23–25).
- Line 23: The markdown link text "[Aigamo.MatchGenerator by Aigamo ]" contains
a trailing space which triggers MD039; edit the markdown entry on line with that
link so the link text has no trailing space (change "[Aigamo.MatchGenerator by
Aigamo ]" to "[Aigamo.MatchGenerator by Aigamo]") ensuring the surrounding link
URL and other columns remain unchanged.
In `@v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.md`:
- Line 244: Fix the typo in the Markdown reference label: change the link text
"Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven
Design and F### by Scott Wlaschin" to use the correct language name "F#" (i.e.,
replace "F###" with "F#") so the displayed title reads "Domain Modeling Made
Functional: Tackle Software Complexity with Domain-Driven Design and F# by Scott
Wlaschin".
- Around line 69-77: The file uses invalid heading levels (9 and 10 hashes) such
as "######### 1. Install the package" and "########## Enum example"; update all
these instances by replacing 9 `#` with 3 (`###`) for top-level numbered steps
and 10 `#` with 4 (`####`) for their subsections (apply the same pattern to the
other reported headings e.g. the lines matching "######### " and "########## "
elsewhere in the document) so the Markdown uses valid heading levels
(##–######).
In `@v2/rscg_examples/Aigamo.MatchGenerator/nuget.txt`:
- Line 1: Replace the placeholder first line "Package Description" in nuget.txt
with a concise real NuGet package summary: a one-line sentence describing what
Aigamo.MatchGenerator does (its primary purpose), the target platform/framework
(e.g., .NET version), and the main capabilities or audience (e.g., match
generation for games/simulations), keeping it factual and under ~120 characters;
update the first line only so package metadata shows a meaningful summary rather
than placeholder text.
In
`@v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour`:
- Around line 14-23: The tour steps for EnumDemo/CarTypes.cs and
EnumDemo/Program.cs use the placeholder pattern "this is the code" which doesn't
exist and breaks anchoring; update the "pattern" values to actual unique code
snippets from those files (for example use a line from the CarTypes enum
declaration or a constant name in CarTypes, and the Program class or Main method
signature line such as "static void Main(" or the sample run comment) so the
tour can locate the anchors (replace the pattern entries for the steps
referencing EnumDemo/CarTypes.cs and EnumDemo/Program.cs accordingly).
In `@v2/rscg_examples/Aigamo.MatchGenerator/video.json`:
- Around line 35-36: The JSON entry in the browser step has an unquoted property
name SpeakTest which makes the document invalid; update the object (the
{"typeStep":"browser","arg":"https://...","SpeakTest":" "}) so that the
SpeakTest key is wrapped in double quotes ("SpeakTest") and confirm the
surrounding object keeps valid JSON syntax (correct commas and quoting) so the
browser step in the video script parses correctly.
---
Nitpick comments:
In `@README.md`:
- Line 27: Replace the awkward single sentence "Those are the 266 Roslyn Source
Code Generators that I have tested you can see and download source code
example." with two clearer clauses; for example: "These are the 266 Roslyn
Source Code Generators that I have tested. You can view and download the source
code examples." Locate and update that sentence in the README to improve grammar
and readability.
In
`@v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour`:
- Around line 27-53: Add an explicit preceding tour step that instructs the user
to run build/run to generate the required artifacts before the steps that
enumerate generated files; specifically, insert the new step immediately before
the block that lists generated files such as TaggedEnumAttribute.g.cs,
MaritalStatusMatchExtensions.g.cs and CarTypesMatchExtensions.g.cs so the
subsequent steps that reference the EnumDemo/obj/GX artifacts are reproducible.
In `@v2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/Program.cs`:
- Line 3: Remove the unused using directive System.Reflection from the top of
Program.cs; locate the Program class/file (Program.cs) in the EnumDemo project
and delete the line "using System.Reflection;" so only necessary usings remain
and the demo compiles without unused imports.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5aad9bdd-49ad-4e77-99d2-7121bc105572
⛔ Files ignored due to path filters (3)
v2/Generator/all.csvis excluded by!**/*.csvv2/rscg_examples_site/static/exports/RSCG.xlsxis excluded by!**/*.xlsxv2/rscg_examples_site/static/sources/Aigamo.MatchGenerator.zipis excluded by!**/*.zip
📒 Files selected for processing (24)
README.mdv2/RSCGExamplesData/GeneratorDataRec.jsonv2/book/examples/Aigamo.MatchGenerator.htmlv2/book/list.htmlv2/book/pandocHTML.yamlv2/docFind.jsonv2/rscg_examples/Aigamo.MatchGenerator/description.jsonv2/rscg_examples/Aigamo.MatchGenerator/nuget.txtv2/rscg_examples/Aigamo.MatchGenerator/readme.txtv2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tourv2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo.slnv2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/CarTypes.csv2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/EnumDemo.csprojv2/rscg_examples/Aigamo.MatchGenerator/src/EnumDemo/Program.csv2/rscg_examples/Aigamo.MatchGenerator/video.jsonv2/rscg_examples_site/docs/Authors/Aigamo.mdv2/rscg_examples_site/docs/Categories/Enum.mdv2/rscg_examples_site/docs/Categories/_PrimitiveEnum.mdxv2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.mdv2/rscg_examples_site/docs/RSCG-Examples/index.mdv2/rscg_examples_site/docs/about.mdv2/rscg_examples_site/docs/indexRSCG.mdv2/rscg_examples_site/src/components/HomepageFeatures/index.jsv2/rscg_examples_site/static/exports/RSCG.json
| ( including 16 from Microsoft ) | ||
| ### 266. [Aigamo.MatchGenerator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator) , in the [Enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) category | ||
|
|
||
| Generated on : 2026-04-05 => 05 April 2026 |
There was a problem hiding this comment.
Verify future generated date against PR creation time.
Line 31 says Generated on : 2026-04-05, but this PR was created on April 4, 2026. Please confirm this is expected (timezone/automation behavior) to avoid timeline confusion in the catalog.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@README.md` at line 31, The README contains a generated date string "Generated
on : 2026-04-05" that does not match the PR creation date (Apr 4, 2026); update
the generation process to use the PR creation timestamp (or consistently use
UTC) and timezone-aware formatting so the generated date matches the PR creation
time, then regenerate the README to replace the "Generated on : YYYY-MM-DD" line
with the corrected date; locate the generator that emits the "Generated on :"
line and modify it to pull the PR creation time from the CI/PR metadata or
convert times to a single canonical timezone before formatting.
| <body> | ||
| <h1> | ||
| This is the list of 265 RSCG with examples => | ||
| This is the list of 266 RSCG with examples => |
There was a problem hiding this comment.
Escape special character in heading text.
Line 20 includes a raw > which triggers HTMLHint (spec-char-escape). Escape it to keep HTML lint-clean.
Suggested fix
-This is the list of 266 RSCG with examples =>
+This is the list of 266 RSCG with examples =>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| This is the list of 266 RSCG with examples => | |
| This is the list of 266 RSCG with examples => |
🧰 Tools
🪛 HTMLHint (1.9.2)
[error] 20-20: Special characters must be escaped : [ > ].
(spec-char-escape)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/book/list.html` at line 20, The heading text in v2/book/list.html contains
a raw '>' character ("This is the list of 266 RSCG with examples =>") that
violates HTMLHint spec-char-escape; update that heading (the line containing
that exact string) to escape the greater-than sign (replace '>' with '>') so
the markup is lint-clean while preserving the visible text.
|
|
||
| 1 [ResXGenerator](/docs/ResXGenerator) [](https://www.nuget.org/packages/Aigamo.ResXGenerator/)  2023-10-02 | ||
|
|
||
| 2 [Aigamo.MatchGenerator](/docs/Aigamo.MatchGenerator) [](https://www.nuget.org/packages/Aigamo.MatchGenerator/)  2026-04-05 |
There was a problem hiding this comment.
Fix future-dated metadata in author entry.
Line 8 uses 2026-04-05, which is a future date relative to this PR timeline (April 4, 2026). Please use the actual publication/addition date to avoid inconsistent chronology.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples_site/docs/Authors/Aigamo.md` at line 8, The author entry for
Aigamo.MatchGenerator contains a future-dated metadata value "2026-04-05";
update that date to the correct publication/addition date (e.g., today's or the
actual release date) in the Aigamo.MatchGenerator line so the entry's chronology
is accurate and no future date remains.
| ## 266 RSCG with examples in descending chronological order | ||
|
|
||
| This is the list of 265 ( 16 from Microsoft) RSCG with examples | ||
| This is the list of 266 ( 16 from Microsoft) RSCG with examples |
There was a problem hiding this comment.
Chronological order claim is currently violated.
Line 10 says the list is in descending chronological order, but Line 23 (2026-04-05) is placed above Line 24 (2026-04-07) and Line 25 (2026-04-06). Please reorder rows (or adjust the heading) to keep the page truthful.
Also applies to: 23-25
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples_site/docs/indexRSCG.md` around lines 10 - 12, The document
heading "## 266 RSCG with examples in descending chronological order" claims
descending chronological order but the rows around the dates "2026-04-05",
"2026-04-07", and "2026-04-06" are out of order; either reorder those list rows
so dates descend (place 2026-04-07 first, then 2026-04-06, then 2026-04-05) or
change the heading text to remove the descending-chronological claim; update the
block containing the three date lines so the order matches the heading and
ensure the same fix is applied to the other instances noted (lines 23–25).
|
|
||
| | No | Name | Date | Category | | ||
| | --------- | ----- | ---- | -------- | | ||
| |266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | |
There was a problem hiding this comment.
Remove trailing space inside link text.
Line 23 has a trailing space inside [Aigamo.MatchGenerator by Aigamo ], triggering MD039.
Proposed fix
-|266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) |
+|266| [Aigamo.MatchGenerator by Aigamo](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) |📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| |266| [Aigamo.MatchGenerator by Aigamo ](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | | |
| |266| [Aigamo.MatchGenerator by Aigamo](/docs/Aigamo.MatchGenerator)|2026-04-05 => 05 April 2026 | [Enum](/docs/Categories/Enum) | |
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 23-23: Spaces inside link text
(MD039, no-space-in-links)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples_site/docs/indexRSCG.md` at line 23, The markdown link text
"[Aigamo.MatchGenerator by Aigamo ]" contains a trailing space which triggers
MD039; edit the markdown entry on line with that link so the link text has no
trailing space (change "[Aigamo.MatchGenerator by Aigamo ]" to
"[Aigamo.MatchGenerator by Aigamo]") ensuring the surrounding link URL and other
columns remain unchanged.
| ######### 1. Install the package | ||
|
|
||
| ```bash | ||
| dotnet add package Aigamo.MatchGenerator | ||
| ``` | ||
|
|
||
| ######### 2. Annotate your type | ||
|
|
||
| ########## Enum example |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find invalid markdown heading levels (>6)
rg -n '^\s*#{7,}\s' v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.mdRepository: ignatandrei/RSCG_Examples
Length of output: 415
🏁 Script executed:
cat -n v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.md | head -230Repository: ignatandrei/RSCG_Examples
Length of output: 6099
Normalize heading levels to ##–###### for valid Markdown structure.
Headings with 7+ # symbols are not valid Markdown, causing 13 instances in this file (lines 69, 75, 77, 90, 104, 106, 115, 128, 130, 141, 154, 193, 214) to violate the specification. Convert the 9-# headings to H3 (###) for numbered steps and the 10-# headings to H4 (####) for their subsections.
Proposed changes
-######### 1. Install the package
+### 1. Install the package
-######### 2. Annotate your type
+### 2. Annotate your type
-########## Enum example
+#### Enum example
-########## Union example
+#### Union example
-######### 3. Use `Match`
+### 3. Use `Match`
-######### Without MatchGenerator
+### Without MatchGenerator
-######### With MatchGenerator
+### With MatchGenerator
-######### Enum
+### Enum
-######### Union
+### Union(Apply the same pattern: ######### → ### and ########## → #### )
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ######### 1. Install the package | |
| ```bash | |
| dotnet add package Aigamo.MatchGenerator | |
| ``` | |
| ######### 2. Annotate your type | |
| ########## Enum example | |
| ### 1. Install the package | |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.md` around
lines 69 - 77, The file uses invalid heading levels (9 and 10 hashes) such as
"######### 1. Install the package" and "########## Enum example"; update all
these instances by replacing 9 `#` with 3 (`###`) for top-level numbered steps
and 10 `#` with 4 (`####`) for their subsections (apply the same pattern to the
other reported headings e.g. the lines matching "######### " and "########## "
elsewhere in the document) so the Markdown uses valid heading levels
(##–######).
| - [Introducing C# Source Generators - .NET Blog](https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/) | ||
| - [roslyn/docs/features/source-generators.cookbook.md at main · dotnet/roslyn](https://github.com/dotnet/roslyn/blob/main/docs/features/source-generators.cookbook.md) | ||
| - [roslyn/docs/features/incremental-generators.cookbook.md at main · dotnet/roslyn](https://github.com/dotnet/roslyn/blob/main/docs/features/incremental-generators.cookbook.md) | ||
| - [Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F### by Scott Wlaschin](https://pragprog.com/titles/swdddf/domain-modeling-made-functional/) |
There was a problem hiding this comment.
Fix typo in reference title text.
F### should be F# in the Scott Wlaschin reference label.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples_site/docs/RSCG-Examples/Aigamo.MatchGenerator.md` at line
244, Fix the typo in the Markdown reference label: change the link text "Domain
Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design
and F### by Scott Wlaschin" to use the correct language name "F#" (i.e., replace
"F###" with "F#") so the displayed title reads "Domain Modeling Made Functional:
Tackle Software Complexity with Domain-Driven Design and F# by Scott Wlaschin".
| @@ -0,0 +1 @@ | |||
| Package Description No newline at end of file | |||
There was a problem hiding this comment.
Replace placeholder NuGet text with real package summary.
Line 1 still contains placeholder content (Package Description), which will surface as low-quality docs/metadata for this example.
Suggested fix
-Package Description
+<actual one-line description of Aigamo.MatchGenerator from NuGet/package docs>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples/Aigamo.MatchGenerator/nuget.txt` at line 1, Replace the
placeholder first line "Package Description" in nuget.txt with a concise real
NuGet package summary: a one-line sentence describing what Aigamo.MatchGenerator
does (its primary purpose), the target platform/framework (e.g., .NET version),
and the main capabilities or audience (e.g., match generation for
games/simulations), keeping it factual and under ~120 characters; update the
first line only so package metadata shows a meaningful summary rather than
placeholder text.
| "file": "EnumDemo/CarTypes.cs", | ||
| "description": "File CarTypes.cs ", | ||
| "pattern": "this is the code" | ||
| } | ||
|
|
||
| ,{ | ||
| "file": "EnumDemo/Program.cs", | ||
| "description": "File Program.cs \r\n>> dotnet run --project EnumDemo/EnumDemo.csproj ", | ||
| "pattern": "this is the code" | ||
| } |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify that CodeTour pattern anchors exist in referenced files.
set -euo pipefail
python - <<'PY'
import json, pathlib, sys
tour = pathlib.Path("v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour")
data = json.loads(tour.read_text(encoding="utf-8"))
root = tour.parent.parent # .../src
ok = True
for i, step in enumerate(data.get("steps", []), 1):
file = step.get("file")
pattern = step.get("pattern")
if not file or not pattern:
continue
p = root / file
if not p.exists():
print(f"STEP {i}: missing file -> {p}")
ok = False
continue
txt = p.read_text(encoding="utf-8", errors="ignore")
if pattern not in txt:
print(f"STEP {i}: pattern not found -> {pattern!r} in {p}")
ok = False
if ok:
print("All step patterns found.")
PYRepository: ignatandrei/RSCG_Examples
Length of output: 297
Replace placeholder pattern values with actual code anchors.
Lines 16 and 22 use pattern: "this is the code", which do not exist in the referenced files (EnumDemo/CarTypes.cs and EnumDemo/Program.cs). The tour will fail to anchor correctly at these steps. Use actual code snippets from these files as the pattern value.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples/Aigamo.MatchGenerator/src/.tours/Aigamo.MatchGenerator.tour`
around lines 14 - 23, The tour steps for EnumDemo/CarTypes.cs and
EnumDemo/Program.cs use the placeholder pattern "this is the code" which doesn't
exist and breaks anchoring; update the "pattern" values to actual unique code
snippets from those files (for example use a line from the CarTypes enum
declaration or a constant name in CarTypes, and the Program class or Main method
signature line such as "static void Main(" or the sample run comment) so the
tour can locate the anchors (replace the pattern entries for the steps
referencing EnumDemo/CarTypes.cs and EnumDemo/Program.cs accordingly).
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator#download-example-net--c-", | ||
| SpeakTest=" "}, |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify JSON syntax for the new walkthrough script
python -m json.tool v2/rscg_examples/Aigamo.MatchGenerator/video.json >/dev/nullRepository: ignatandrei/RSCG_Examples
Length of output: 148
Fix invalid JSON property syntax in the browser step.
The property name SpeakTest must be enclosed in double quotes—JSON requires all property names to be quoted strings. Currently, the JSON is unparsable and breaks the video script pipeline.
Proposed fix
-{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator#download-example-net--c-",
-SpeakTest=" "},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator#download-example-net--c-","SpeakTest":" "},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator#download-example-net--c-", | |
| SpeakTest=" "}, | |
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Aigamo.MatchGenerator#download-example-net--c-","SpeakTest":" "}, |
🧰 Tools
🪛 Biome (2.4.10)
[error] 36-36: Property key must be double quoted
(parse)
[error] 36-36: unexpected character =
(parse)
[error] 36-36: expected , but instead found " "
(parse)
[error] 36-36: expected : but instead found }
(parse)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@v2/rscg_examples/Aigamo.MatchGenerator/video.json` around lines 35 - 36, The
JSON entry in the browser step has an unquoted property name SpeakTest which
makes the document invalid; update the object (the
{"typeStep":"browser","arg":"https://...","SpeakTest":" "}) so that the
SpeakTest key is wrapped in double quotes ("SpeakTest") and confirm the
surrounding object keeps valid JSON syntax (correct commas and quoting) so the
browser step in the video script parses correctly.
Summary by CodeRabbit
Release Notes