{"id":13629586,"url":"https://github.com/jeromelaban/fonderie","last_synced_at":"2025-04-10T05:45:45.592Z","repository":{"id":74523252,"uuid":"226768749","full_name":"jeromelaban/fonderie","owner":"jeromelaban","description":"A source generator for the INotifyPropertyChanged interface using the Uno.SourceGeneration framework","archived":false,"fork":false,"pushed_at":"2020-09-17T23:41:26.000Z","size":29,"stargazers_count":17,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T07:03:55.919Z","etag":null,"topics":["csharp","dotnet","roslyn","source-generation"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeromelaban.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-09T02:34:08.000Z","updated_at":"2025-01-31T10:52:08.000Z","dependencies_parsed_at":"2023-02-23T21:15:40.441Z","dependency_job_id":null,"html_url":"https://github.com/jeromelaban/fonderie","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeromelaban%2Ffonderie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeromelaban%2Ffonderie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeromelaban%2Ffonderie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeromelaban%2Ffonderie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeromelaban","download_url":"https://codeload.github.com/jeromelaban/fonderie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166881,"owners_count":21058479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet","roslyn","source-generation"],"created_at":"2024-08-01T22:01:14.299Z","updated_at":"2025-04-10T05:45:45.560Z","avatar_url":"https://github.com/jeromelaban.png","language":"C#","funding_links":[],"categories":["Do not want to test 112 ( old ISourceGenerator )"],"sub_categories":["1. [ThisAssembly](https://ignatandrei.github.io/RSCG_Examples/v2/docs/ThisAssembly) , in the [EnhancementProject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) category"],"readme":"## Fonderie source generators\n\nThis repository is the home of Fonderie set of Roslyn generators. \n\n**These generators need at least Visual Studio 16.8 Preview 2.1 or .NET 5 Preview 8 to work properly.**\n\n## Fonderie.INPC\n\nThis is repository for the `INotifyPropertyChanged` generator based on field discovery, using C# 9.0 source generators.\n\nFind out more about it [in this article](https://jaylee.org/archive/2019/12/08/roslyn-sourcegeneration-reborn-replace-inotifypropertychanged.html).\n\n### How to use it\n\nAdd the following attribute in your source:\n```csharp\nnamespace Fonderie\n{\n    public class GeneratedPropertyAttribute : Attribute { }\n}\n```\n\nAdd a reference to [`Fonderie.INPC.Generator`](https://www.nuget.org/packages/Fonderie.INPC.Generator), the add the following class :\n\n```csharp\n    public partial class MyClass\n    {\n        [GeneratedProperty]\n        private string _stringProperty;\n\n        [GeneratedProperty]\n        private int _intProperty;\n\n        private bool _otherField;\n\n        partial void OnIntPropertyChanged(int previous, int value)\n            =\u003e Console.WriteLine($\"OnIntPropertyChanged({previous},{value})\");\n\n        partial void OnStringPropertyChanged(string previous, string value) \n            =\u003e Console.WriteLine($\"OnIntPropertyChanged({previous},{value})\");\n    }\n```\n\nThe `INotifyPropertyChanged` interface is automatically implemented, and `XXPropertyChanged` methods are generated to be notified inside the class if a property changed.\n\n## Fonderie.Resw.Generator\n\nThis generator is a sample to demonstrate the ability for Roslyn generators to use MSBuild properties and items.\n\nFind out more in [the article describing this sample](https://jaylee.org/archive/2020/09/13/msbuild-items-and-properties-in-csharp9-sourcegenerators.html).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeromelaban%2Ffonderie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeromelaban%2Ffonderie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeromelaban%2Ffonderie/lists"}