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


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *