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
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