RawFormatter 0.5.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package RawFormatter --version 0.5.0
NuGet\Install-Package RawFormatter -Version 0.5.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RawFormatter" Version="0.5.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RawFormatter --version 0.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RawFormatter, 0.5.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RawFormatter as a Cake Addin
#addin nuget:?package=RawFormatter&version=0.5.0
// Install RawFormatter as a Cake Tool
#tool nuget:?package=RawFormatter&version=0.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
RawFormatter
A library that combines raw string literals and string interpolation introduced in C# 11, compatible with .NET Standard 2.0, to implement fast-acting template features.
Minimum Requirements
- Requires a platform with .NET Standard 2.0 or later, and Windows Vista+, Windows Server 2008+
- Supported .NET Version: .NET Core 2.0+, .NET 5+, .NET Framework 4.6.1+, Mono 5.4+, UWP 10.0.16299+, Unity 2018.1+
How to use
Use with conditional block
Initialize and pass instances of the If
, For
, and ForEach
classes in the string interpolation interval. At this point, you can use collection initializers to implement a simplified syntax.
using RawFormatter;
...
var @namespace = "Hello";
var isEnumType = DateTime.Now.Second % 2 == 0;
var typeName = "Candidates";
var memberType = "int";
var members = Enumerable.Range(0, 5).Select(x => new KeyValuePair<string, int>($"Member{x}", x)).ToArray();
var fragment = $$"""
namespace {{@namespace}}
{
using System;
{{new If(isEnumType)
{
$$"""
public enum {{typeName}} : {{memberType}}
{
{{new ForEach(members) {
(KeyValuePair<string, int> item) => $$"""
{{item.Key}} = {{item.Value}},
"""
}}}
}
""",
$$"""
public static class {{typeName}}
{
{{new ForEach(members) {
(KeyValuePair<string, int> item) => $$"""
// Test
public static readonly {{item.Value.GetType()}} {{item.Key}} = {{item.Value}};
"""
}}}
}
""",
}}}
}
""";
Console.Out.WriteLine(fragment);
License
This library follows Apache-2.0 license. See LICENSE file for more information.
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. |
.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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.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.