Raiqub.Generators.InterpolationCodeWriter.CSharp
2.0.4
Prefix Reserved
dotnet add package Raiqub.Generators.InterpolationCodeWriter.CSharp --version 2.0.4
NuGet\Install-Package Raiqub.Generators.InterpolationCodeWriter.CSharp -Version 2.0.4
<PackageReference Include="Raiqub.Generators.InterpolationCodeWriter.CSharp" Version="2.0.4" />
<PackageVersion Include="Raiqub.Generators.InterpolationCodeWriter.CSharp" Version="2.0.4" />
<PackageReference Include="Raiqub.Generators.InterpolationCodeWriter.CSharp" />
paket add Raiqub.Generators.InterpolationCodeWriter.CSharp --version 2.0.4
#r "nuget: Raiqub.Generators.InterpolationCodeWriter.CSharp, 2.0.4"
#:package Raiqub.Generators.InterpolationCodeWriter.CSharp@2.0.4
#addin nuget:?package=Raiqub.Generators.InterpolationCodeWriter.CSharp&version=2.0.4
#tool nuget:?package=Raiqub.Generators.InterpolationCodeWriter.CSharp&version=2.0.4
Raiqub.Generators.InterpolationCodeWriter.CSharp
Provides Roslyn-specific utilities for .NET incremental source generators, including CodeWriterDispatcher and extensions for integrating SourceTextWriter with SourceProductionContext.
Installation
dotnet add package Raiqub.Generators.InterpolationCodeWriter.CSharp
Quick Start
Implement ICodeWriter<T> to define a code writer and use CodeWriterDispatcher<T> to dispatch source generation:
public class MyWriter : ICodeWriter<MyModel>
{
public bool CanGenerateFor(MyModel model) => model.Properties.Count > 0;
public string GetFileName(MyModel model) => $"{model.Namespace ?? "_"}.{model.Name}Extensions.g.cs";
public void Write(SourceTextWriter writer, MyModel model)
{
writer.WriteLine($"namespace {model.Namespace};");
writer.WriteLine();
writer.WriteLine($"public static partial class {model.Name}Extensions");
writer.WriteLine("{");
writer.PushIndent();
// Write members using string interpolation...
writer.PopIndent();
writer.WriteLine("}");
}
}
Then dispatch generation using CodeWriterDispatcher<T>:
private static readonly CodeWriterDispatcher<MyModel> s_dispatcher =
new([new MyWriter()]);
private static void Emit(
SourceProductionContext context,
ImmutableArray<MyModel> types)
{
s_dispatcher.GenerateSources(types, context);
}
Compatibility
Targets .NET Standard 2.0.
Documentation
For the full documentation and guides, see the project repository.
License
See the LICENSE file for details.
| 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
- Microsoft.CodeAnalysis.CSharp (>= 4.3.1)
- Raiqub.Generators.InterpolationCodeWriter (>= 2.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
See https://github.com/skarllot/SourceGenerators/releases for release notes.