RSCG – NTypewriter
RSCG – NTypewriter
name | NTypewriter |
nuget | https://www.nuget.org/packages/NTypewriter.SourceGenerator |
link | https://github.com/NeVeSpl/NTypewriter |
author | NeVeSpl |
Generating code with a template from classes in project
This is how you can use NTypewriter .
The code that you start with is
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net9.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <None Remove="test.nt" /> </ItemGroup> <ItemGroup> <AdditionalFiles Include="test.nt" /> </ItemGroup> <ItemGroup> <PackageReference Include="NTypewriter.SourceGenerator" Version="0.5.9" /> </ItemGroup> <PropertyGroup> <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles> <CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath> </PropertyGroup> </Project>
The code that you will use is
// See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");
namespace DemoTemplateConsole; public class PersonModel { public int Name { get; set; } }
The code that is generated is
// NTypewriter.SourceGenerator 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\VBCSCompiler\AnalyzerAssemblyLoader\f44f8d8546d2454b92ff0e62b6eaea10\4a40c9db-c376-41d2-8a7c-26eda7296396\NTypewriter.SourceGenerator.dll NTypewriter.SourceGenerator, Version=0.5.9.0, Culture=neutral, PublicKeyToken=null // NTypewriter 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.v0.5.9.0.dll NTypewriter, Version=0.5.9.0, Culture=neutral, PublicKeyToken=686471615d7a8f08 // NTypewriter.CodeModel 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.CodeModel.v0.5.9.0.dll NTypewriter.CodeModel, Version=0.5.9.0, Culture=neutral, PublicKeyToken=9bd097c4961606db // NTypewriter.CodeModel.Functions 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.CodeModel.Functions.v0.5.9.0.dll NTypewriter.CodeModel.Functions, Version=0.5.9.0, Culture=neutral, PublicKeyToken=64a6b4cdbb438ab5 // NTypewriter.CodeModel.Roslyn 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.CodeModel.Roslyn.v0.5.9.0.dll NTypewriter.CodeModel.Roslyn, Version=0.5.9.0, Culture=neutral, PublicKeyToken=81d8e46ee60c9c4c // NTypewriter.Editor.Config 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.Editor.Config.v0.5.9.0.dll NTypewriter.Editor.Config, Version=0.5.9.0, Culture=neutral, PublicKeyToken=b9f8710003231974 // NTypewriter.Runtime 0.5.9.0 C:\Users\ignat\AppData\Local\Temp\NTSG\NTypewriter.Runtime.v0.5.9.0.dll NTypewriter.Runtime, Version=0.5.9.0, Culture=neutral, PublicKeyToken=4fac57df20922078 // Scriban.Signed 5.0.0.0 C:\Users\ignat\AppData\Local\Temp\NTSG\Scriban.Signed.v5.10.0.0.dll Scriban.Signed, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5675fb69b15f2433 // System.Text.Json 6.0.0.0 C:\Users\ignat\AppData\Local\Temp\NTSG\System.Text.Json.v6.0.0.0.dll System.Text.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 // System 4.0.0.0 C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // Microsoft.CodeAnalysis 4.14.0.0 C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Current\Bin\Roslyn\Microsoft.CodeAnalysis.dll Microsoft.CodeAnalysis, Version=4.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Microsoft.CodeAnalysis.CSharp 4.14.0.0 C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Current\Bin\Roslyn\Microsoft.CodeAnalysis.CSharp.dll Microsoft.CodeAnalysis.CSharp, Version=4.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Microsoft.CodeAnalysis.Scripting 4.0.0.0 C:\Users\ignat\AppData\Local\Temp\NTSG\Microsoft.CodeAnalysis.Scripting.v4.0.1.0.dll Microsoft.CodeAnalysis.Scripting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Microsoft.CodeAnalysis.CSharp.Scripting 4.0.0.0 C:\Users\ignat\AppData\Local\Temp\NTSG\Microsoft.CodeAnalysis.CSharp.Scripting.v4.0.1.0.dll Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Microsoft.CodeAnalysis.Workspaces 4.0.0.0 C:\Users\ignat\AppData\Local\Temp\NTSG\Microsoft.CodeAnalysis.Workspaces.v4.0.1.0.dll Microsoft.CodeAnalysis.Workspaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // CurrentDomain: VBCSCompiler.exe
// NTypewriter.SourceGenerator v0.5.9.0 // total runs : 4, total renders : 4 // touch file : D:\gth\RSCG_Examples\v2\rscg_examples\NTypewriter\src\DemoTemplate\DemoTemplateConsole\bin\Debug\net9.0\.touch // log file : D:\gth\RSCG_Examples\v2\rscg_examples\NTypewriter\src\DemoTemplate\DemoTemplateConsole\bin\Debug\net9.0\DemoTemplateConsole.ntsg.log // last build : 2/15/2025 5:39:39 PM // last *.nt edit : 2/15/2025 5:39:31 PM // last render : 2/15/2025 5:39:39 PM
Code and pdf at
https://ignatandrei.github.io/RSCG_Examples/v2/docs/NTypewriter
Leave a Reply