Repository navigation
first - #510
first#510
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughAdds Porticle.Enumly as RSCG example ChangesPorticle.Enumly example
Estimated code review effort: 2 (Simple) | ~15 minutes Sequence Diagram(s)sequenceDiagram
participant Program
participant Mapper
participant PorticleEnumly
Program->>Mapper: call ToTypesCar(CarTypes.Dacia)
Mapper->>PorticleEnumly: use generated enum mapping
PorticleEnumly-->>Mapper: return mapped TypesCar value
Mapper-->>Program: print mapped result
Possibly related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Biome (2.5.3)v2/rscg_examples/Porticle.Enumly/video.jsonFile contains syntax errors that prevent linting: Line 36: Property key must be double quoted; Line 36: unexpected character 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 Porticle.Enumly (enum-to-enum mapping) and wires it into the repository’s generated indexes/exports (site, book, and metadata), while bumping the overall example count from 274 → 275.
Changes:
- Add new example project + supporting assets for
Porticle.Enumly(demo source, CodeTour, video script, description/readme). - Update site/book/index/export metadata to include the new generator and reflect the new total count.
- Adjust Dirge-related docs/export content touched by regeneration.
Reviewed changes
Copilot reviewed 29 out of 31 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| v2/RSCGExamplesData/GeneratorDataRec.json | Registers Porticle.Enumly in generator metadata (ID/category/start date). |
| v2/rscg_examples/Porticle.Enumly/video.json | Adds the scripted video steps for the new example. |
| v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Program.cs | New minimal demo program using the generated enum mapper. |
| v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs | Declares the [EnumlyClass] mapper with mapping methods. |
| v2/rscg_examples/Porticle.Enumly/src/EnumDemo/EnumDemo.csproj | New demo project referencing Porticle.Enumly NuGet package. |
| v2/rscg_examples/Porticle.Enumly/src/EnumDemo/CarTypes.cs | Adds source/target enums used for mapping demonstration. |
| v2/rscg_examples/Porticle.Enumly/src/EnumDemo.sln | Adds solution file for the demo project. |
| v2/rscg_examples/Porticle.Enumly/src/.tours/Porticle.Enumly.tour | Adds VS Code CodeTour steps for the new example. |
| v2/rscg_examples/Porticle.Enumly/readme.txt | Captures upstream/readme content for the generator. |
| v2/rscg_examples/Porticle.Enumly/nuget.txt | Adds short NuGet description text for the generator. |
| v2/rscg_examples/Porticle.Enumly/description.json | Adds generator metadata (links/files/category usage) for build pipeline. |
| v2/rscg_examples_site/static/exports/RSCG.json | Adds Porticle.Enumly to exported generator list. |
| v2/rscg_examples_site/src/components/HomepageFeatures/index.js | Updates homepage example count (274 → 275). |
| v2/rscg_examples_site/docs/RSCG-Examples/Porticle.Enumly.md | New Docusaurus doc page for the generator/example. |
| v2/rscg_examples_site/docs/RSCG-Examples/index.md | Updates category list/counts and links to include Porticle.Enumly. |
| v2/rscg_examples_site/docs/RSCG-Examples/Dirge.md | Fills in the Dirge description field in frontmatter. |
| v2/rscg_examples_site/docs/indexRSCG.md | Updates overall counts and inserts the new entry in the main list. |
| v2/rscg_examples_site/docs/Categories/Enum.md | Updates Enum category count and inserts Porticle.Enumly. |
| v2/rscg_examples_site/docs/Categories/_PrimitiveEnum.mdx | Updates Enum category snippet to include Porticle.Enumly. |
| v2/rscg_examples_site/docs/Authors/Carsten_Jendro.md | Adds a new author page referencing the new generator. |
| v2/rscg_examples_site/docs/about.md | Updates overall RSCG count (274 → 275). |
| v2/Generator/all.csv | Adds Porticle.Enumly to generator registry CSV. |
| v2/docFind.json | Adds search/index entry for Porticle.Enumly. |
| v2/book/pandocHTML.yaml | Adds the new example HTML page to pandoc input list. |
| v2/book/list.html | Updates book list count and adds link to Porticle.Enumly page. |
| v2/book/examples/Porticle.Enumly.html | Adds the book HTML page for the new generator example. |
| v2/book/examples/Dirge.html | Updates Dirge “About” content (regenerated). |
| README.md | Updates overall count + latest update date; adds entry for Porticle.Enumly. |
| later.md | Updates latest update date (2026-07-01 → 2026-07-02). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <h2>About</h2> | ||
|
|
||
| **Dirge** is a Roslyn-based code generator that automatically implements the `IDisposable` pattern for C# classes.Key Features:1. **AutoDispose Attribute**: Mark any partial class with `[AutoDispose]` to automatically generate `Dispose()` and `Dispose(bool)` methods.2. **Automatic Field Disposal**: The generator detects all disposable fields and automatically calls `.Dispose()` on them in the correct order. | ||
| Dirge is a Roslyn-based code generator that automatically implements the `IDisposable` pattern for C# classes.Key Features:1. AutoDispose Attribute: Mark any partial class with `[AutoDispose]` to automatically generate `Dispose()` and `Dispose(bool)` methods.2. Automatic Field Disposal: The generator detects all disposable fields and automatically calls `.Dispose()` on them in the correct order. |
| [EnumlyMap(IgnoreNullSource = true)] | ||
| public static partial TypesCar ToTypesCar(CarTypes value); | ||
|
|
||
| [EnumlyMap(IgnoreNullSource = true)] | ||
| public static partial CarTypes ToCarTypes(TypesCar value); |
| { | ||
| title: '274 Examples (16 from MSFT)', | ||
| title: '275 Examples (16 from MSFT)', | ||
| Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs (1)
7-11: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove unnecessary
IgnoreNullSourceproperty.Since
CarTypesandTypesCarare non-nullable enums, theIgnoreNullSource = truesetting is ignored by the generator. Including it in an educational example could mislead users into thinking it has an effect on non-nullable types.
v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs#L7-L11: remove(IgnoreNullSource = true)from the[EnumlyMap]attributes or change the parameters to be nullable (CarTypes?,TypesCar?).v2/rscg_examples_site/docs/RSCG-Examples/Porticle.Enumly.md#L361-L365: update the documented snippet to match the removedIgnoreNullSourceproperty.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs` around lines 7 - 11, Remove the unnecessary IgnoreNullSource setting from both EnumlyMap attributes on ToTypesCar and ToCarTypes in v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs, keeping the non-nullable enum parameters unchanged. Update the corresponding documented snippet in v2/rscg_examples_site/docs/RSCG-Examples/Porticle.Enumly.md to match the attribute changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@v2/book/examples/Dirge.html`:
- Line 15: Update the rendered description in the Dirge example to use valid
HTML structure: separate the overview and key features into paragraphs or list
items, replace backticks and Markdown links such as [AutoDispose] with
appropriate HTML elements, and emphasize labels with <strong> where applicable.
Ensure sentences do not run together and the visible content remains unchanged.
In `@v2/book/list.html`:
- Line 20: Update the heading text in the list content to replace the literal
“=>” sequence with “=>”, preserving the displayed meaning while satisfying
HTML validation.
In `@v2/rscg_examples_site/docs/indexRSCG.md`:
- Line 23: Remove the trailing space before the closing bracket in the
Porticle.Enumly link text on the documentation index row, leaving the link
destination and surrounding table content unchanged.
In `@v2/rscg_examples/Porticle.Enumly/video.json`:
- Around line 35-38: Update the JSON array near the final browser and wait
entries: change the SpeakTest property to use a double-quoted key with a colon
separator, and remove the trailing comma after the final object so the document
is valid standard JSON.
---
Nitpick comments:
In `@v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs`:
- Around line 7-11: Remove the unnecessary IgnoreNullSource setting from both
EnumlyMap attributes on ToTypesCar and ToCarTypes in
v2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.cs, keeping the
non-nullable enum parameters unchanged. Update the corresponding documented
snippet in v2/rscg_examples_site/docs/RSCG-Examples/Porticle.Enumly.md to match
the attribute changes.
🪄 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: b159b540-56c4-4684-907a-a6366d70bebd
⛔ 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/Porticle.Enumly.zipis excluded by!**/*.zip
📒 Files selected for processing (28)
README.mdlater.mdv2/RSCGExamplesData/GeneratorDataRec.jsonv2/book/examples/Dirge.htmlv2/book/examples/Porticle.Enumly.htmlv2/book/list.htmlv2/book/pandocHTML.yamlv2/docFind.jsonv2/rscg_examples/Porticle.Enumly/description.jsonv2/rscg_examples/Porticle.Enumly/nuget.txtv2/rscg_examples/Porticle.Enumly/readme.txtv2/rscg_examples/Porticle.Enumly/src/.tours/Porticle.Enumly.tourv2/rscg_examples/Porticle.Enumly/src/EnumDemo.slnv2/rscg_examples/Porticle.Enumly/src/EnumDemo/CarTypes.csv2/rscg_examples/Porticle.Enumly/src/EnumDemo/EnumDemo.csprojv2/rscg_examples/Porticle.Enumly/src/EnumDemo/Mapper.csv2/rscg_examples/Porticle.Enumly/src/EnumDemo/Program.csv2/rscg_examples/Porticle.Enumly/video.jsonv2/rscg_examples_site/docs/Authors/Carsten_Jendro.mdv2/rscg_examples_site/docs/Categories/Enum.mdv2/rscg_examples_site/docs/Categories/_PrimitiveEnum.mdxv2/rscg_examples_site/docs/RSCG-Examples/Dirge.mdv2/rscg_examples_site/docs/RSCG-Examples/Porticle.Enumly.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
| <h2>About</h2> | ||
|
|
||
| **Dirge** is a Roslyn-based code generator that automatically implements the `IDisposable` pattern for C# classes.Key Features:1. **AutoDispose Attribute**: Mark any partial class with `[AutoDispose]` to automatically generate `Dispose()` and `Dispose(bool)` methods.2. **Automatic Field Disposal**: The generator detects all disposable fields and automatically calls `.Dispose()` on them in the correct order. | ||
| Dirge is a Roslyn-based code generator that automatically implements the `IDisposable` pattern for C# classes.Key Features:1. AutoDispose Attribute: Mark any partial class with `[AutoDispose]` to automatically generate `Dispose()` and `Dispose(bool)` methods.2. Automatic Field Disposal: The generator detects all disposable fields and automatically calls `.Dispose()` on them in the correct order. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the rendered description formatting.
This raw HTML line concatenates sentences (classes.Key Features:1.) and retains Markdown syntax such as backticks and [AutoDispose], which will render literally. Use HTML elements such as <code>, <strong>, and separate paragraphs/list items.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/book/examples/Dirge.html` at line 15, Update the rendered description in
the Dirge example to use valid HTML structure: separate the overview and key
features into paragraphs or list items, replace backticks and Markdown links
such as [AutoDispose] with appropriate HTML elements, and emphasize labels with
<strong> where applicable. Ensure sentences do not run together and the visible
content remains unchanged.
| <body> | ||
| <h1> | ||
| This is the list of 274 RSCG with examples => | ||
| This is the list of 275 RSCG with examples => |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Escape the > character in the heading.
HTMLHint reports this text. Replace => with => so the generated HTML passes validation.
Proposed fix
-This is the list of 275 RSCG with examples =>
+This is the list of 275 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 275 RSCG with examples => | |
| This is the list of 275 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 current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/book/list.html` at line 20, Update the heading text in the list content to
replace the literal “=>” sequence with “=>”, preserving the displayed meaning
while satisfying HTML validation.
Source: Linters/SAST tools
|
|
||
| | No | Name | Date | Category | | ||
| | --------- | ----- | ---- | -------- | | ||
| |275| [Porticle.Enumly by Carsten Jendro ](/docs/Porticle.Enumly)|2026-07-02 => 02 July 2026 | [Enum](/docs/Categories/Enum) | |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove the trailing space inside the link text.
This violates Markdownlint MD039 and may render unwanted whitespace in the link label.
Proposed fix
-|275| [Porticle.Enumly by Carsten Jendro ](/docs/Porticle.Enumly)|2026-07-02 => 02 July 2026 | [Enum](/docs/Categories/Enum) |
+|275| [Porticle.Enumly by Carsten Jendro](/docs/Porticle.Enumly)|2026-07-02 => 02 July 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.
| |275| [Porticle.Enumly by Carsten Jendro ](/docs/Porticle.Enumly)|2026-07-02 => 02 July 2026 | [Enum](/docs/Categories/Enum) | | |
| |275| [Porticle.Enumly by Carsten Jendro](/docs/Porticle.Enumly)|2026-07-02 => 02 July 2026 | [Enum](/docs/Categories/Enum) | |
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 23-23: Spaces inside link text
(MD039, no-space-in-links)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples_site/docs/indexRSCG.md` at line 23, Remove the trailing
space before the closing bracket in the Porticle.Enumly link text on the
documentation index row, leaving the link destination and surrounding table
content unchanged.
Source: Linters/SAST tools
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Porticle.Enumly#download-example-net--c-", | ||
| SpeakTest=" "}, | ||
| {"typeStep":"waitseconds","arg":"30"}, | ||
| ] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win
Fix invalid JSON syntax.
The key SpeakTest must be double-quoted and followed by a colon : instead of an equals sign = to be valid JSON. Additionally, the trailing comma at the end of the last object should be removed for standard JSON compliance.
🐛 Proposed fix for JSON syntax
-{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Porticle.Enumly#download-example-net--c-",
-SpeakTest=" "},
-{"typeStep":"waitseconds","arg":"30"},
-]
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Porticle.Enumly#download-example-net--c-",
+"SpeakTest":" "},
+{"typeStep":"waitseconds","arg":"30"}
+]📝 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/Porticle.Enumly#download-example-net--c-", | |
| SpeakTest=" "}, | |
| {"typeStep":"waitseconds","arg":"30"}, | |
| ] | |
| {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Porticle.Enumly#download-example-net--c-", | |
| "SpeakTest":" "}, | |
| {"typeStep":"waitseconds","arg":"30"} | |
| ] |
🧰 Tools
🪛 Biome (2.5.3)
[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)
[error] 38-38: Expected an array, an object, or a literal but instead found ']'.
(parse)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@v2/rscg_examples/Porticle.Enumly/video.json` around lines 35 - 38, Update the
JSON array near the final browser and wait entries: change the SpeakTest
property to use a double-quoted key with a colon separator, and remove the
trailing comma after the final object so the document is valid standard JSON.
Source: Linters/SAST tools
Summary by CodeRabbit
New Features
Documentation