NeVeSpl / NTypewriter

File/code generator using Scriban text templates populated with C# code metadata from Roslyn API.
https://nevespl.github.io/NTypewriter/
MIT License
117 stars 24 forks source link

Add rendered C# templates to compilation source when using NTypewriter.SourceGenerator #75

Closed amdavie closed 1 year ago

amdavie commented 1 year ago

Regarding #74

This small change adds rendered templates to the compilation source (instead of file system) if the render path has a .cs extension and is within the project directory (that the source generator is running for). For all other templates, the rendering behavior remains the same. This still allows a project to generate .cs files to the file system if they are not within the project.

A limitation is that filenames must be unique for rendered .cs templates because the source generator needs a unique name. This is unlikely to be an issue for most people.

Usage: {{ Save output "PartialClass.g.cs" }} - adds the rendered template to compilation source

{{ Save output "../Path/Outside/Project/SomethingElse.g.cs" }} - renders template to file system (existing behavior) because resulting path is not within the project where source generator is running