Nest.CSharp
1.0.0
dotnet add package Nest.CSharp --version 1.0.0
NuGet\Install-Package Nest.CSharp -Version 1.0.0
<PackageReference Include="Nest.CSharp" Version="1.0.0" />
<PackageVersion Include="Nest.CSharp" Version="1.0.0" />
<PackageReference Include="Nest.CSharp" />
paket add Nest.CSharp --version 1.0.0
#r "nuget: Nest.CSharp, 1.0.0"
#:package Nest.CSharp@1.0.0
#addin nuget:?package=Nest.CSharp&version=1.0.0
#tool nuget:?package=Nest.CSharp&version=1.0.0
Nest.CSharp
Nest.CSharp is a fluent, lightweight, zero-dependency source code generator preconfigured for C#. It helps you generate structured C# source code through a clean, builder-style API โ so you can focus on what to generate, not how to format it.
๐ฆ Installation
Install via the .NET CLI:
dotnet add package Nest.CSharp
๐ Overview
Built on .NET Standard 2.0, Nest.CSharp works across all .NET versions with no external dependencies. It handles indentation, structure, formatting, and character escaping โ all out of the box.
๐งช Example
Let's imagine we want to generate the following C# code:
using System.Text;
namespace MyProgram
{
public class MyProgram
{
public static void Main(string[] args)
{
if (count > 6)
{
Console.WriteLine("Hello World!");
Console.WriteLine("Hello World!");
}
else
{
Console.WriteLine("Hello World!");
}
}
}
}
Here's how we'll do it:
using Nest.CSharp;
var _ = new CSharpBuilder();
_.L("using System.Text;");
_.B("namespace MyProgram", _ =>
{
_.B("public class MyProgram", _ =>
{
_.B("public static void Main(string[] args)", _ =>
{
_.B("if (count > 6)", _ =>
{
_.L("Console.WriteLine(`Hello World!`);");
_.L("Console.WriteLine(`Hello World!`);");
})
.B("else", _ =>
{
_.L("Console.WriteLine(`Hello World!`);");
});
});
});
});
Console.WriteLine(_.ToString());
โจ Key Features
โ Fluent API โ Code That Writes Code
Write source generation logic that looks nearly identical to the output. No manual formatting, indentation, or brace management required.
๐ง Token-Aware Formatting
The builder system knows its context โ it automatically places line breaks and indentation where needed according to widely accepted formatting rules in the C# community. Which makes your generated code clean and readable.
๐ Character Replacement System
Write code with backticks instead of escaped double quotes:
_.L("Console.WriteLine(`Hello World!`);"); // <-- Notice Backtick (`)
It is preconfigured to replace Backtick (`) with Double Quotes ("). You can customize & remove character replacements as below:
_.Options.RegisterCharReplacement('`', '"');
_.Options.RemoveCharReplacement('`');
๐ค Why Nest?
- โ Fluent, readable, and chainable API
- โ No need to manage indentation or formatting manually
- โ Output closely mirrors your generation code
- โ No dependencies
- โ Works with any .NET project
๐ Getting Started
- Install the package
- Use
CSharpBuilderto define your structure - Call
.ToString()to get the generated output
๐ Links
- ๐ฆ NuGet: https://www.nuget.org/packages/Nest.CSharp/
- ๐ป GitHub: https://github.com/h-shahzaib/Nest
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|