From d10e5a1f18e65e193009dcfbd9f6724a7df169b0 Mon Sep 17 00:00:00 2001 From: Andrei Ignat Date: Mon, 31 Aug 2026 20:49:58 +0300 Subject: [PATCH 1/4] examples --- .../Pinecone.TypedPath/description.json | 22 +++++++++++++++++++ .../Pinecone.TypedPath/src/FolderToCode.slnx | 3 +++ .../src/FolderToCode/FolderToCode.csproj | 20 +++++++++++++++++ .../src/FolderToCode/MyFolder.cs | 15 +++++++++++++ .../src/FolderToCode/MyFolderToShow/en/a.json | 0 .../src/FolderToCode/MyFolderToShow/ro/a.json | 0 .../src/FolderToCode/Program.cs | 4 ++++ 7 files changed, 64 insertions(+) create mode 100644 v2/rscg_examples/Pinecone.TypedPath/description.json create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode.slnx create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolder.cs create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/en/a.json create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/ro/a.json create mode 100644 v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/Program.cs diff --git a/v2/rscg_examples/Pinecone.TypedPath/description.json b/v2/rscg_examples/Pinecone.TypedPath/description.json new file mode 100644 index 000000000..11347afd7 --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/description.json @@ -0,0 +1,22 @@ +{ + "generator":{ + "name":"Pinecone.TypedPath", + "nuget":[ + "https://www.nuget.org/packages/Pinecone.TypedPath/" + ], + "link":"", + "author":"", + "source":"" + }, + "data":{ + "goodFor":[""], + "csprojDemo":"Pinecone.TypedPathDemo.csproj", + "csFiles":["Program.cs"], + "excludeDirectoryGenerated":[""], + "includeAdditionalFiles":[""] + }, + "links":{ + "blog":"", + "video":"" + } +} \ No newline at end of file diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode.slnx b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode.slnx new file mode 100644 index 000000000..9feecc1be --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode.slnx @@ -0,0 +1,3 @@ + + + diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj new file mode 100644 index 000000000..3a3e58fd5 --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj @@ -0,0 +1,20 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + + + + true + $(BaseIntermediateOutputPath)\GX + + diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolder.cs b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolder.cs new file mode 100644 index 000000000..412f0741d --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolder.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; +using TypedPath; + +namespace FolderToCode; + +[TypedPath("MyFolderToShow")] +public partial class MyFolder: ITypedPath +{ + public static string Wrap(string path) + { + return path; + } +} diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/en/a.json b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/en/a.json new file mode 100644 index 000000000..e69de29bb diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/ro/a.json b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolderToShow/ro/a.json new file mode 100644 index 000000000..e69de29bb diff --git a/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/Program.cs b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/Program.cs new file mode 100644 index 000000000..a4994ee5a --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/src/FolderToCode/Program.cs @@ -0,0 +1,4 @@ +using FolderToCode; + +Console.WriteLine(MyFolder.en.A); +Console.WriteLine(MyFolder.ro.A); From cc90dd90a0b97098a5bcbadd4c602d8b46b2405e Mon Sep 17 00:00:00 2001 From: Andrei Ignat Date: Mon, 31 Aug 2026 20:54:16 +0300 Subject: [PATCH 2/4] desc --- v2/RSCGExamplesData/GeneratorDataRec.json | 6 ++++++ v2/rscg_examples/Pinecone.TypedPath/description.json | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json index e993f97f8..45fc16ecb 100644 --- a/v2/RSCGExamplesData/GeneratorDataRec.json +++ b/v2/RSCGExamplesData/GeneratorDataRec.json @@ -1715,6 +1715,12 @@ "Category": 4, "dtStart": "2026-08-23T00:00:00", "show": true + }, + { + "ID":"Pinecone.TypedPath", + "Category": 8, + "dtStart": "2026-08-24T00:00:00", + "show": true } ] \ No newline at end of file diff --git a/v2/rscg_examples/Pinecone.TypedPath/description.json b/v2/rscg_examples/Pinecone.TypedPath/description.json index 11347afd7..67edc3fa5 100644 --- a/v2/rscg_examples/Pinecone.TypedPath/description.json +++ b/v2/rscg_examples/Pinecone.TypedPath/description.json @@ -4,14 +4,14 @@ "nuget":[ "https://www.nuget.org/packages/Pinecone.TypedPath/" ], - "link":"", - "author":"", - "source":"" + "link":"https://github.com/nickpinecone/typed-path", + "author":"Nick Pinecone", + "source":"https://github.com/nickpinecone/typed-path" }, "data":{ - "goodFor":[""], - "csprojDemo":"Pinecone.TypedPathDemo.csproj", - "csFiles":["Program.cs"], + "goodFor":["Generating typed paths for file system navigation and manipulation."], + "csprojDemo":"FolderToCode.csproj", + "csFiles":["Program.cs","MyFolder.cs"], "excludeDirectoryGenerated":[""], "includeAdditionalFiles":[""] }, From 814d4cf0ba1cf1edae537a082996ffa77f6f90bc Mon Sep 17 00:00:00 2001 From: Andrei Ignat Date: Mon, 31 Aug 2026 20:57:46 +0300 Subject: [PATCH 3/4] docs --- README.md | 30 +- later.md | 2 +- v2/.tours/Pinecone.TypedPath.tour | 48 +++ v2/Generator/all.csv | 1 + v2/RSCGExamplesData/GeneratorDataRec.json | 1 - v2/rscg_examples/Pinecone.TypedPath/nuget.txt | 1 + .../Pinecone.TypedPath/readme.txt | 57 ++++ .../Pinecone.TypedPath/video.json | 39 +++ .../docs/Authors/Nick_Pinecone.md | 7 + .../docs/Categories/FilesToCode.md | 24 +- .../docs/Categories/_PrimitiveFilesToCode.mdx | 22 +- .../docs/RSCG-Examples/Pinecone.TypedPath.md | 282 ++++++++++++++++++ .../docs/RSCG-Examples/index.md | 13 +- v2/rscg_examples_site/docs/about.md | 2 +- v2/rscg_examples_site/docs/indexRSCG.md | 5 +- .../src/components/HomepageFeatures/index.js | 2 +- .../static/exports/RSCG.json | 8 + 17 files changed, 510 insertions(+), 34 deletions(-) create mode 100644 v2/.tours/Pinecone.TypedPath.tour create mode 100644 v2/rscg_examples/Pinecone.TypedPath/nuget.txt create mode 100644 v2/rscg_examples/Pinecone.TypedPath/readme.txt create mode 100644 v2/rscg_examples/Pinecone.TypedPath/video.json create mode 100644 v2/rscg_examples_site/docs/Authors/Nick_Pinecone.md create mode 100644 v2/rscg_examples_site/docs/RSCG-Examples/Pinecone.TypedPath.md diff --git a/README.md b/README.md index db02e8172..9e7d88e52 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# RSCG - 283 Examples of Roslyn Source Code Generators / 16 created by Microsoft / +# RSCG - 284 Examples of Roslyn Source Code Generators / 16 created by Microsoft / -The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 283 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports. +The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 284 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports. This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem -## Latest Update : 2026-08-23 => 23 August 2026 +## Latest Update : 2026-08-24 => 24 August 2026 If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)*** @@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt ## Content -Those are the 283 Roslyn Source Code Generators that I have tested you can see and download source code example. +Those are the 284 Roslyn Source Code Generators that I have tested you can see and download source code example. ( including 16 from Microsoft ) +### 284. [Pinecone.TypedPath](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath) , in the [FilesToCode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) category + +Generated on : 2026-08-24 => 24 August 2026 + +
+ Expand + + + +Author: Nick Pinecone + +.NET source generator for strongly typed file paths + +Nuget: [https://www.nuget.org/packages/Pinecone.TypedPath/](https://www.nuget.org/packages/Pinecone.TypedPath/) + + +Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath) + +Source: [https://github.com/nickpinecone/typed-path](https://github.com/nickpinecone/typed-path) + +
+ ### 283. [IncrementalSourceGenerator.BuilderPattern](https://ignatandrei.github.io/RSCG_Examples/v2/docs/IncrementalSourceGenerator.BuilderPattern) , in the [Builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) category Generated on : 2026-08-23 => 23 August 2026 diff --git a/later.md b/later.md index d8350b65d..d4ce7ef17 100644 --- a/later.md +++ b/later.md @@ -1,6 +1,6 @@ # Just later -## Latest Update : 2026-08-23 => 23 August 2026 +## Latest Update : 2026-08-24 => 24 August 2026 diff --git a/v2/.tours/Pinecone.TypedPath.tour b/v2/.tours/Pinecone.TypedPath.tour new file mode 100644 index 000000000..052448f38 --- /dev/null +++ b/v2/.tours/Pinecone.TypedPath.tour @@ -0,0 +1,48 @@ + +{ + "$schema": "https://aka.ms/codetour-schema", + "title": "Pinecone.TypedPath", + "steps": + [ + { + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj", + "description": "First, we add Nuget [Pinecone.TypedPath](https://www.nuget.org/packages/Pinecone.TypedPath/) in csproj ", + "pattern": "Pinecone.TypedPath" + } + + ,{ + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/MyFolder.cs", + "description": "File MyFolder.cs ", + "pattern": "this is the code" + } + + ,{ + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/Program.cs", + "description": "File Program.cs \r\n>> dotnet run --project rscg_examples/Pinecone.TypedPath/src/FolderToCode/FolderToCode.csproj ", + "pattern": "this is the code" + } + + + ,{ + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/obj/GX/TypedPath.SourceGen/TypedPath.SourceGen.PathGenerator/TypedPathInterface.g.cs", + "description": "Generated File 3 from 3 : TypedPathInterface.g.cs ", + "line": 1 + } + + ,{ + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/obj/GX/TypedPath.SourceGen/TypedPath.SourceGen.PathGenerator/TypedPathAttribute.g.cs", + "description": "Generated File 2 from 3 : TypedPathAttribute.g.cs ", + "line": 1 + } + + ,{ + "file": "rscg_examples/Pinecone.TypedPath/src/FolderToCode/obj/GX/TypedPath.SourceGen/TypedPath.SourceGen.PathGenerator/TypedPath.MyFolder.g.cs", + "description": "Generated File 1 from 3 : TypedPath.MyFolder.g.cs ", + "line": 1 + } + + ], + + "ref": "main" + +} \ No newline at end of file diff --git a/v2/Generator/all.csv b/v2/Generator/all.csv index 3c4ff778b..8e2697ed9 100644 --- a/v2/Generator/all.csv +++ b/v2/Generator/all.csv @@ -282,3 +282,4 @@ Nr,Key,Source,Category 281,EndpointHelpers, https://github.com/gumbarros/EndpointHelpers,MVC 282,Clap.Net, https://github.com/simon-curtis/Clap.Net,CommandLine 283,IncrementalSourceGenerator.BuilderPattern, https://github.com/MartinBarrettNielsen11/Incremental-source-generator-builder-pattern,Builder +284,Pinecone.TypedPath, https://github.com/nickpinecone/typed-path,FilesToCode diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json index 45fc16ecb..27f7bd206 100644 --- a/v2/RSCGExamplesData/GeneratorDataRec.json +++ b/v2/RSCGExamplesData/GeneratorDataRec.json @@ -1722,5 +1722,4 @@ "dtStart": "2026-08-24T00:00:00", "show": true } - ] \ No newline at end of file diff --git a/v2/rscg_examples/Pinecone.TypedPath/nuget.txt b/v2/rscg_examples/Pinecone.TypedPath/nuget.txt new file mode 100644 index 000000000..420d3fda8 --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/nuget.txt @@ -0,0 +1 @@ +.NET source generator for strongly typed file paths \ No newline at end of file diff --git a/v2/rscg_examples/Pinecone.TypedPath/readme.txt b/v2/rscg_examples/Pinecone.TypedPath/readme.txt new file mode 100644 index 000000000..455339e5f --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/readme.txt @@ -0,0 +1,57 @@ +# Typed Path + +[![Nuget](https://img.shields.io/nuget/v/Pinecone.TypedPath?style=flat-square)](https://www.nuget.org/packages/Pinecone.TypedPath) +[![License](https://img.shields.io/github/license/nickpinecone/typed-path?style=flat-square)](https://github.com/nickpinecone/typed-path/blob/main/LICENSE.md) +[![GitHub](https://img.shields.io/badge/-source-181717.svg?logo=GitHub)](https://github.com/nickpinecone/typed-path) + +.NET source generator for strongly typed file paths + +## Install +Install the package from nuget +```sh +dotnet add package Pinecone.TypedPath +``` + +Make sure to include the package as a source generator +```xml + + + +``` + +## Configuration +The `Sample` project includes the full example + +First add the folder to .csproj as AdditionalFiles +```xml + + + +``` + +Then define a partial class with `TypedPath` attribute and `ITypedPath` interface +```cs +[TypedPath("Assets")] +public partial class Assets : ITypedPath +{ + public static string Wrap(string path) + { + return path; + } +} +``` + +After that you can just reference the path you need +```cs +> Console.WriteLine(Assets.SubFolder.NestedFolder.SuperNested); + +Assets/SubFolder/NestedFolder/SuperNested.json +``` + +## Note for Rider +Related to [RIDER-75959](https://youtrack.jetbrains.com/issue/RIDER-75959/Rider-doesnt-trigger-IncrementalSourceGenerator-when-changing-AdditionalFiles) + +While the source generator works with most file types (`.json`, `.png`, etc.), +Rider's IntelliSense may not detect changes with `.txt` and potentially other files. + +**Builds will still work correctly** (this is purely an IDE issue) diff --git a/v2/rscg_examples/Pinecone.TypedPath/video.json b/v2/rscg_examples/Pinecone.TypedPath/video.json new file mode 100644 index 000000000..6f74c24a7 --- /dev/null +++ b/v2/rscg_examples/Pinecone.TypedPath/video.json @@ -0,0 +1,39 @@ +{ + "scriptName": "Pinecone.TypedPath", + "steps": +[ + {"typeStep":"exec","arg":"clipchamp.exe launch"}, + {"typeStep":"text","arg": "Welcome to Roslyn Examples"}, + {"typeStep":"text","arg":"If you want to see more examples , see List Of RSCG"}, + {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG"}, + {"typeStep":"text","arg": "My name is Andrei Ignat and I am deeply fond of Roslyn Source Code Generator. "}, + +{"typeStep":"text","arg": "Today I will present Pinecone.TypedPath . Generating typed paths for file system navigation and manipulation. ."}, +{"typeStep":"browser","arg":"https://www.nuget.org/packages/Pinecone.TypedPath/"}, +{"typeStep":"text","arg": "The whole example is here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath"}, +{"typeStep":"text","arg": "You can download the code from here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath#download-example-net--c-"}, +{"typeStep":"text","arg":"Here is the code downloaded "}, +{"typeStep":"exec","arg":"explorer.exe /select,D:\\gth\\RSCG_Examples\\v2\\Generator.sln"}, +{"typeStep":"text","arg": "So , let's start the project with Visual Studio Code "}, +{"typeStep":"stepvscode","arg": "-n D:\\gth\\RSCG_Examples\\v2"}, + +{"typeStep":"text","arg": "To use it ,you will put the Nuget Pinecone.TypedPath into the csproj "}, + +{"typeStep":"stepvscode","arg": "-r -g D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\Pinecone.TypedPath\\src\\FolderToCode\\FolderToCode.csproj"}, + +{"typeStep":"text","arg": "And now I will show you an example of using Pinecone.TypedPath"}, + +{"typeStep":"hide","arg": "now execute the tour in VSCode"}, +{"typeStep":"tour", "arg": "src/.tours/"}, +{"typeStep":"text","arg":" And I will execute the project"}, +{"typeStep":"showproj", "arg":"FolderToCode.csproj"}, +{"typeStep":"text","arg":" This concludes the project"}, +{"typeStep":"waitseconds","arg":"30"}, +{"typeStep":"text","arg": "Remember, you can download the code from here"}, +{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath#download-example-net--c-", +SpeakTest=" "}, +{"typeStep":"waitseconds","arg":"30"}, +] +} diff --git a/v2/rscg_examples_site/docs/Authors/Nick_Pinecone.md b/v2/rscg_examples_site/docs/Authors/Nick_Pinecone.md new file mode 100644 index 000000000..c83f85211 --- /dev/null +++ b/v2/rscg_examples_site/docs/Authors/Nick_Pinecone.md @@ -0,0 +1,7 @@ +# Author : Nick Pinecone + +Number RSCG: 1 + + + 1 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 + diff --git a/v2/rscg_examples_site/docs/Categories/FilesToCode.md b/v2/rscg_examples_site/docs/Categories/FilesToCode.md index 4d8273fc7..9ad08d084 100644 --- a/v2/rscg_examples_site/docs/Categories/FilesToCode.md +++ b/v2/rscg_examples_site/docs/Categories/FilesToCode.md @@ -1,6 +1,6 @@

FilesToCode

-Number RSCG: 20 +Number RSCG: 21 1 [Chorn.EmbeddedResourceAccessGenerator](/docs/Chorn.EmbeddedResourceAccessGenerator) [![Nuget](https://img.shields.io/nuget/dt/Chorn.EmbeddedResourceAccessGenerator?label=Chorn.EmbeddedResourceAccessGenerator)](https://www.nuget.org/packages/Chorn.EmbeddedResourceAccessGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ChristophHornung/EmbeddedResourceGenerator?style=social) 2024-01-21 @@ -22,23 +22,25 @@ Number RSCG: 20 10 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 - 11 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 + 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 - 12 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 + 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 - 13 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 + 13 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 - 14 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 + 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 - 15 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 + 15 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 - 16 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 + 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 - 17 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 + 17 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 - 18 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 + 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 - 19 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 - 20 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 + 20 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + + 21 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 \ No newline at end of file diff --git a/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx b/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx index 1f7d64d97..22139deba 100644 --- a/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx +++ b/v2/rscg_examples_site/docs/Categories/_PrimitiveFilesToCode.mdx @@ -20,25 +20,27 @@ 10 [NotNotAppSettings](/docs/NotNotAppSettings) [![Nuget](https://img.shields.io/nuget/dt/NotNot.AppSettings?label=NotNot.AppSettings)](https://www.nuget.org/packages/NotNot.AppSettings/) ![GitHub Repo stars](https://img.shields.io/github/stars/jasonswearingen/NotNot.AppSettings?style=social) 2024-01-26 - 11 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 + 11 [Pinecone.TypedPath](/docs/Pinecone.TypedPath) [![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) ![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) 2026-08-24 - 12 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 + 12 [Podimo.ConstEmbed](/docs/Podimo.ConstEmbed) [![Nuget](https://img.shields.io/nuget/dt/Podimo.ConstEmbed?label=Podimo.ConstEmbed)](https://www.nuget.org/packages/Podimo.ConstEmbed/) ![GitHub Repo stars](https://img.shields.io/github/stars/podimo/Podimo.ConstEmbed?style=social) 2023-04-16 - 13 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 + 13 [ResXGenerator](/docs/ResXGenerator) [![Nuget](https://img.shields.io/nuget/dt/Aigamo.ResXGenerator?label=Aigamo.ResXGenerator)](https://www.nuget.org/packages/Aigamo.ResXGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/ycanardeau/ResXGenerator?style=social) 2023-10-02 - 14 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 + 14 [RSCG_JSON2Class](/docs/RSCG_JSON2Class) [![Nuget](https://img.shields.io/nuget/dt/RSCG_JSON2Class?label=RSCG_JSON2Class)](https://www.nuget.org/packages/RSCG_JSON2Class/) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_JSON2Class?style=social) 2024-02-29 - 15 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 + 15 [RSCG_Utils](/docs/RSCG_Utils) [![Nuget](https://img.shields.io/nuget/dt/rscgutils?label=rscgutils)](https://www.nuget.org/packages/rscgutils) ![GitHub Repo stars](https://img.shields.io/github/stars/ignatandrei/RSCG_Utils?style=social) 2023-04-16 - 16 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 + 16 [Strings.ResourceGenerator](/docs/Strings.ResourceGenerator) [![Nuget](https://img.shields.io/nuget/dt/Strings.ResourceGenerator?label=Strings.ResourceGenerator)](https://www.nuget.org/packages/Strings.ResourceGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/biggik/Strings.ResourceGenerator?style=social) 2025-07-06 - 17 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 + 17 [SvgIconGenerator](/docs/SvgIconGenerator) [![Nuget](https://img.shields.io/nuget/dt/SvgIconGenerator?label=SvgIconGenerator)](https://www.nuget.org/packages/SvgIconGenerator/) ![GitHub Repo stars](https://img.shields.io/github/stars/helluvamatt/SvgIconGenerator?style=social) 2026-04-04 - 18 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 + 18 [ThisAssembly_Resources](/docs/ThisAssembly_Resources) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Resources?label=ThisAssembly.Resources)](https://www.nuget.org/packages/ThisAssembly.Resources/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2023-09-16 - 19 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + 19 [ThisAssembly.Strings](/docs/ThisAssembly.Strings) [![Nuget](https://img.shields.io/nuget/dt/ThisAssembly.Strings?label=ThisAssembly.Strings)](https://www.nuget.org/packages/ThisAssembly.Strings/) ![GitHub Repo stars](https://img.shields.io/github/stars/devlooped/ThisAssembly?style=social) 2024-07-21 - 20 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 + 20 [TypedPaths](/docs/TypedPaths) [![Nuget](https://img.shields.io/nuget/dt/TypedPaths.Generator?label=TypedPaths.Generator)](https://www.nuget.org/packages/TypedPaths.Generator/) ![GitHub Repo stars](https://img.shields.io/github/stars/AlexChim1231/TypedPaths?style=social) 2026-04-01 + + 21 [Weave](/docs/Weave) [![Nuget](https://img.shields.io/nuget/dt/Weave?label=Weave)](https://www.nuget.org/packages/Weave/) ![GitHub Repo stars](https://img.shields.io/github/stars/otac0n/Weave?style=social) 2024-01-27 ### See category diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Pinecone.TypedPath.md b/v2/rscg_examples_site/docs/RSCG-Examples/Pinecone.TypedPath.md new file mode 100644 index 000000000..06813f774 --- /dev/null +++ b/v2/rscg_examples_site/docs/RSCG-Examples/Pinecone.TypedPath.md @@ -0,0 +1,282 @@ +--- +sidebar_position: 2840 +title: 284 - Pinecone.TypedPath +description: Generating typed paths for file system navigation and manipulation. +slug: /Pinecone.TypedPath +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import TOCInline from '@theme/TOCInline'; +import SameCategory from '../Categories/_PrimitiveFilesToCode.mdx'; + +# Pinecone.TypedPath by Nick Pinecone + + + + +## NuGet / site data +[![Nuget](https://img.shields.io/nuget/dt/Pinecone.TypedPath?label=Pinecone.TypedPath)](https://www.nuget.org/packages/Pinecone.TypedPath/) +[![GitHub last commit](https://img.shields.io/github/last-commit/nickpinecone/typed-path?label=updated)](https://github.com/nickpinecone/typed-path) +![GitHub Repo stars](https://img.shields.io/github/stars/nickpinecone/typed-path?style=social) + +## Details + +### Info +:::info + +Name: **Pinecone.TypedPath** + +.NET source generator for strongly typed file paths + +Author: Nick Pinecone + +NuGet: +*https://www.nuget.org/packages/Pinecone.TypedPath/* + + +You can find more details at https://github.com/nickpinecone/typed-path + +Source: https://github.com/nickpinecone/typed-path + +::: + +### Author +:::note +Nick Pinecone +![Alt text](https://github.com/nickpinecone.png) +::: + +## Original Readme +:::note + +### Typed Path + +[![Nuget](https://img.shields.io/nuget/v/Pinecone.TypedPath?style=flat-square)](https://www.nuget.org/packages/Pinecone.TypedPath) +[![License](https://img.shields.io/github/license/nickpinecone/typed-path?style=flat-square)](https://github.com/nickpinecone/typed-path/blob/main/LICENSE.md) +[![GitHub](https://img.shields.io/badge/-source-181717.svg?logo=GitHub)](https://github.com/nickpinecone/typed-path) + +.NET source generator for strongly typed file paths + +###### Install +Install the package from nuget +```sh +dotnet add package Pinecone.TypedPath +``` + +Make sure to include the package as a source generator +```xml + + + +``` + +###### Configuration +The `Sample` project includes the full example + +First add the folder to .csproj as AdditionalFiles +```xml + + + +``` + +Then define a partial class with `TypedPath` attribute and `ITypedPath` interface +```cs +[TypedPath("Assets")] +public partial class Assets : ITypedPath +{ + public static string Wrap(string path) + { + return path; + } +} +``` + +After that you can just reference the path you need +```cs +> Console.WriteLine(Assets.SubFolder.NestedFolder.SuperNested); + +Assets/SubFolder/NestedFolder/SuperNested.json +``` + +###### Note for Rider +Related to [RIDER-75959](https://youtrack.jetbrains.com/issue/RIDER-75959/Rider-doesnt-trigger-IncrementalSourceGenerator-when-changing-AdditionalFiles) + +While the source generator works with most file types (`.json`, `.png`, etc.), +Rider's IntelliSense may not detect changes with `.txt` and potentially other files. + +**Builds will still work correctly** (this is purely an IDE issue) + + +::: + +### About +:::note + +Generating typed paths for file system navigation and manipulation. + + +::: + +## How to use + +### Example (source csproj, source files) + + + + + +This is the CSharp Project that references **Pinecone.TypedPath** +```xml showLineNumbers {14} + + + + Exe + net10.0 + enable + enable + + + + + + + + + + true + $(BaseIntermediateOutputPath)\GX + + + +``` + + + + + + This is the use of **Pinecone.TypedPath** in *Program.cs* + +```csharp showLineNumbers +using FolderToCode; + +Console.WriteLine(MyFolder.en.A); +Console.WriteLine(MyFolder.ro.A); + +``` + + + + + This is the use of **Pinecone.TypedPath** in *MyFolder.cs* + +```csharp showLineNumbers +using System; +using System.Collections.Generic; +using System.Text; +using TypedPath; + +namespace FolderToCode; + +[TypedPath("MyFolderToShow")] +public partial class MyFolder: ITypedPath +{ + public static string Wrap(string path) + { + return path; + } +} + +``` + + + + +### Generated Files + +Those are taken from $(BaseIntermediateOutputPath)\GX + + + + +```csharp showLineNumbers +namespace FolderToCode; + +[global::System.CodeDom.Compiler.GeneratedCode("TypedPath", "1.0.0")] +public partial class MyFolder +{ + public static partial class en + { + public static readonly string A = Wrap("MyFolder\en\a.json"); + } + public static partial class ro + { + public static readonly string A = Wrap("MyFolder\ro\a.json"); + } +} + +``` + + + + +```csharp showLineNumbers +using System; + +namespace TypedPath; + +[global::System.CodeDom.Compiler.GeneratedCode("TypedPath", "1.0.0")] +[AttributeUsage(AttributeTargets.Class)] +public class TypedPathAttribute : Attribute +{ + public string Path \{ get; } + public bool OriginalFilename \{ get; } + + public TypedPathAttribute(string path, bool originalFilename = false) + { + Path = path; + OriginalFilename = originalFilename; + } +} +``` + + + + +```csharp showLineNumbers +namespace TypedPath; + +[global::System.CodeDom.Compiler.GeneratedCode("TypedPath", "1.0.0")] +public interface ITypedPath +{ + public static abstract string Wrap(string path); +} +``` + + + + +## Useful + +### Download Example (.NET C#) + +:::tip + +[Download Example project Pinecone.TypedPath ](/sources/Pinecone.TypedPath.zip) + +::: + + +### Share Pinecone.TypedPath + + + +https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath + + + diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/index.md b/v2/rscg_examples_site/docs/RSCG-Examples/index.md index c91b1804c..25fa71b09 100644 --- a/v2/rscg_examples_site/docs/RSCG-Examples/index.md +++ b/v2/rscg_examples_site/docs/RSCG-Examples/index.md @@ -1,7 +1,7 @@ --- sidebar_position: 30 -title: 283 RSCG list by category -description: 283 RSCG list by category +title: 284 RSCG list by category +description: 284 RSCG list by category slug: /rscg-examples --- @@ -978,7 +978,7 @@ import DocCardList from '@theme/DocCardList'; ## FilesToCode
- Expand FilesToCode =>examples:20 + Expand FilesToCode =>examples:21 @@ -1079,6 +1079,11 @@ import DocCardList from '@theme/DocCardList'; [Maestria.TypeProviders](/docs/Maestria.TypeProviders) + + + +[Pinecone.TypedPath](/docs/Pinecone.TypedPath) +
@@ -2122,6 +2127,8 @@ flowchart LR; FilesToCode--> Maestria.TypeProviders((Maestria.TypeProviders)) + FilesToCode--> Pinecone.TypedPath((Pinecone.TypedPath)) + FunctionalProgramming--> dunet((dunet)) FunctionalProgramming--> PartiallyApplied((PartiallyApplied)) diff --git a/v2/rscg_examples_site/docs/about.md b/v2/rscg_examples_site/docs/about.md index 86216573a..1b0054adc 100644 --- a/v2/rscg_examples_site/docs/about.md +++ b/v2/rscg_examples_site/docs/about.md @@ -6,7 +6,7 @@ title: About ## Content You will find here code examples -of 283 Roslyn Source Code Generator (RSCG) +of 284 Roslyn Source Code Generator (RSCG) that can be useful for you. That means, you will write more elegant and concise code - even if the generators code is not always nice to look. ## Are those examples ready for production? diff --git a/v2/rscg_examples_site/docs/indexRSCG.md b/v2/rscg_examples_site/docs/indexRSCG.md index 6df0bbab1..675c97c98 100644 --- a/v2/rscg_examples_site/docs/indexRSCG.md +++ b/v2/rscg_examples_site/docs/indexRSCG.md @@ -7,9 +7,9 @@ slug: /List-of-RSCG import useBaseUrl from '@docusaurus/useBaseUrl'; -## 283 RSCG with examples in descending chronological order +## 284 RSCG with examples in descending chronological order -This is the list of 283 ( 16 from Microsoft) RSCG with examples +This is the list of 284 ( 16 from Microsoft) RSCG with examples [See by category](/docs/rscg-examples) [See as json](/exports/RSCG.json) [See as Excel](/exports/RSCG.xlsx) @@ -20,6 +20,7 @@ This is the list of 283 ( 16 from Microsoft) RSCG with examples | No | Name | Date | Category | | --------- | ----- | ---- | -------- | +|284| [Pinecone.TypedPath by Nick Pinecone ](/docs/Pinecone.TypedPath)|2026-08-24 => 24 August 2026 | [FilesToCode](/docs/Categories/FilesToCode) | |283| [IncrementalSourceGenerator.BuilderPattern by Martin Barrett Nielsen ](/docs/IncrementalSourceGenerator.BuilderPattern)|2026-08-23 => 23 August 2026 | [Builder](/docs/Categories/Builder) | |282| [Clap.Net by Simon Curtis ](/docs/Clap.Net)|2026-08-22 => 22 August 2026 | [CommandLine](/docs/Categories/CommandLine) | |281| [EndpointHelpers by Gustavo Mauricio de Barros ](/docs/EndpointHelpers)|2026-08-21 => 21 August 2026 | [MVC](/docs/Categories/MVC) | diff --git a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js index e44041272..747ef6416 100644 --- a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js +++ b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js @@ -4,7 +4,7 @@ import styles from './styles.module.css'; const FeatureList = [ { -title: '283 Examples (16 from MSFT)', +title: '284 Examples (16 from MSFT)', Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, description: ( <> diff --git a/v2/rscg_examples_site/static/exports/RSCG.json b/v2/rscg_examples_site/static/exports/RSCG.json index 9d953071a..a6c7c3c18 100644 --- a/v2/rscg_examples_site/static/exports/RSCG.json +++ b/v2/rscg_examples_site/static/exports/RSCG.json @@ -2265,6 +2265,14 @@ "Source": "https://github.com/MartinBarrettNielsen11/Incremental-source-generator-builder-pattern", "Category": "Builder", "AddedOn": "2026-08-23T00:00:00" + }, + { + "Name": "Pinecone.TypedPath", + "Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath", + "NuGet": "https://www.nuget.org/packages/Pinecone.TypedPath/", + "Source": "https://github.com/nickpinecone/typed-path", + "Category": "FilesToCode", + "AddedOn": "2026-08-24T00:00:00" } ] } \ No newline at end of file From 0570aeb5178a09f498930c6488667541ca5a5d29 Mon Sep 17 00:00:00 2001 From: Andrei Ignat Date: Mon, 31 Aug 2026 20:59:25 +0300 Subject: [PATCH 4/4] zip --- v2/book/examples/Pinecone.TypedPath.html | 69 ++++++++++++++++++ v2/book/list.html | 6 +- v2/book/pandocHTML.yaml | 1 + v2/docFind.json | 8 +- .../static/sources/Pinecone.TypedPath.zip | Bin 0 -> 1446 bytes 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 v2/book/examples/Pinecone.TypedPath.html create mode 100644 v2/rscg_examples_site/static/sources/Pinecone.TypedPath.zip diff --git a/v2/book/examples/Pinecone.TypedPath.html b/v2/book/examples/Pinecone.TypedPath.html new file mode 100644 index 000000000..a04cda548 --- /dev/null +++ b/v2/book/examples/Pinecone.TypedPath.html @@ -0,0 +1,69 @@ + +

RSCG nr 284 : Pinecone.TypedPath

+ +

Info

+Nuget : https://www.nuget.org/packages/Pinecone.TypedPath/ + +

You can find more details at : https://github.com/nickpinecone/typed-path

+ +

Author :Nick Pinecone

+ +

Source: https://github.com/nickpinecone/typed-path

+ +

About

+ +Generating typed paths for file system navigation and manipulation. + +

+ How to use +

+

+ Add reference to the Pinecone.TypedPath in the csproj +

+ + +

This was for me the starting code

+ +
+ I have coded the file Program.cs +
+ +
+ +
+ I have coded the file MyFolder.cs +
+ +
+

And here are the generated files

+ +
+ The file generated is TypedPath.MyFolder.g.cs +
+ + +
+ The file generated is TypedPathAttribute.g.cs +
+ + +
+ The file generated is TypedPathInterface.g.cs +
+ + +

+ You can download the code and this page as pdf from + + https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pinecone.TypedPath + +

+ + +

+ You can see the whole list at + + https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG + +

+ diff --git a/v2/book/list.html b/v2/book/list.html index 74bc12286..94d00675c 100644 --- a/v2/book/list.html +++ b/v2/book/list.html @@ -17,7 +17,7 @@

-This is the list of 283 RSCG with examples => +This is the list of 284 RSCG with examples =>

@@ -1158,6 +1158,10 @@

+ + + +
283 IncrementalSourceGenerator.BuilderPattern
284Pinecone.TypedPath
diff --git a/v2/book/pandocHTML.yaml b/v2/book/pandocHTML.yaml index 7155f06d9..8bd080d2a 100644 --- a/v2/book/pandocHTML.yaml +++ b/v2/book/pandocHTML.yaml @@ -297,6 +297,7 @@ input-files: - examples/EndpointHelpers.html - examples/Clap.Net.html - examples/IncrementalSourceGenerator.BuilderPattern.html +- examples/Pinecone.TypedPath.html # or you may use input-file: with a single value # defaults: diff --git a/v2/docFind.json b/v2/docFind.json index a26e48355..4fea67f44 100644 --- a/v2/docFind.json +++ b/v2/docFind.json @@ -1695,6 +1695,12 @@ "title": "IncrementalSourceGenerator.BuilderPattern", "category": "Builder", "href": "/RSCG_Examples/v2/docs/IncrementalSourceGenerator.BuilderPattern/", - "body": "Incremental source generator that that reduces boilerplate in test object builders \n by generating the repetitive structure, while enabling developers to focus on the \n more meaningful, hand-crafted logic via partial classes" + "body": "Incremental source generator that that reduces boilerplate in test object builders \r\n by generating the repetitive structure, while enabling developers to focus on the \r\n more meaningful, hand-crafted logic via partial classes" + }, + { + "title": "Pinecone.TypedPath", + "category": "FilesToCode", + "href": "/RSCG_Examples/v2/docs/Pinecone.TypedPath/", + "body": ".NET source generator for strongly typed file paths" } ] \ No newline at end of file diff --git a/v2/rscg_examples_site/static/sources/Pinecone.TypedPath.zip b/v2/rscg_examples_site/static/sources/Pinecone.TypedPath.zip new file mode 100644 index 0000000000000000000000000000000000000000..f824ddbae5310aff80762f56f7f576010a69ac9c GIT binary patch literal 1446 zcmWIWW@Zs#U|`^25Lqf8`(f#hg|IHIm=$zaTT6Frnr>8F0$?|jlo>$$Uy-*bwX9(5Oe8If+ z<_qPSj0^#AyS4)Ds^s9$aAjm*XkubuP(ZUwAI0M2;)0_5tk$5@euoVNY_K`WuAXTKVf;OJY(aNW?SQVb7OzMer$a5 z!oJ1@4;4f9!|a?gd+VC(Z%dmGoc40K<#X|x>gNf}@3XYBPnoN3_-L*2 z@nYrj6P9`nYA3iOqGJr1O=Mh}Rq}+bYon$_ak}6V|LBm6 z^_(B3D~yN`&1OTZ}jazf32Gcf2Sfzcp=9tFOYkVw!=E{^T<uBh)EMygbl;p!M?J;@6k_oW_};&wGf*ZFy61$yi&uJc-DsxPiTy|^x}u+DE)Tt#4-=PLiSxK(ZWsxA}bvgXZO zyv#IC)%B-rd>jQn!_)I9w}y{zK=JeaddH=-yX zZUiHf2m|gs4R;inf$S=94iE4~XvdaK5!!RmJ%wTxB-0|BhAqV*OnVPZgUANJg9sQe z$fjV6PJ}5pfQ1Q)DTv5L7=k@;5r+6MqZxubwqRjJ$jE*IMk2)?D;vlqY(TgV7$lc~ H8W|V>H6+(< literal 0 HcmV?d00001