Trulla.SourceGenerator.Core 1.4.2

dotnet add package Trulla.SourceGenerator.Core --version 1.4.2                
NuGet\Install-Package Trulla.SourceGenerator.Core -Version 1.4.2                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Trulla.SourceGenerator.Core" Version="1.4.2" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以便引用该软件包。
paket add Trulla.SourceGenerator.Core --version 1.4.2                
#r "nuget: Trulla.SourceGenerator.Core, 1.4.2"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互式工具或脚本的源代码中以便引用该软件包。
// Install Trulla.SourceGenerator.Core as a Cake Addin
#addin nuget:?package=Trulla.SourceGenerator.Core&version=1.4.2

// Install Trulla.SourceGenerator.Core as a Cake Tool
#tool nuget:?package=Trulla.SourceGenerator.Core&version=1.4.2                

<p align="center"> <img src='./artwork/Original Logo.png' alt='logo' width='300' /> </p>

Trulla 模板类似于 Handlebars 或 Mustache 模板,但具有静态类型且更安全!

C# 源生成器: NuGet 徽章

F# 类型提供程序: NuGet 徽章

Trulla 方法

  • 提供带有关联参数的文本模板
    • 模板参数
    • 迭代
    • 条件语句
  • 模型类型是从给定的模板推断出来的。
  • 用户提供一个模型实例以渲染最终的模板。

示例和用法

  • C# 通过源生成器使用: 查阅 C# 文档
  • F# 通过类型提供程序使用: 查阅 F# 文档

通用模板语法

请查看 测试 获取更多示例!

for 循环(带分隔符号)

  • 对于给定的 chars = ["a"; "b"; "c"],将会渲染 'abc'。
{{for c in chars}}{{c}}{{end}}
  • 对于给定项之间的分隔符号,当 chars = ["a"; "b"; "c"] 时,将渲染 'a;b;c'。
{{for x in numbers|;}}{{x.id}}{{end}}

if/else

  • 这将根据order.isActive的值打印 "订单处于活动状态。" 或 "订单已关闭。"
  • else部分是可选的。
Order is {{if order.isActive}}active{{else}}closed{{end}}.

它的工作原理(内部实现)

Trulla是用FS#实现的。它基本上包含了一个“真实”语言拥有的所有功能,如下:

  • 解析器
  • 无类型AST
  • 具有求解器的类型推断
  • 有类型AST
  • 代码生成

如果您想了解更多信息,请参阅(内部实现)[./src/docs/Internals.md]。

产品 兼容和额外的计算目标框架版本。
.NET net5.0已计算。 net5.0-windows已计算。 net6.0已计算。 net6.0-android已计算。 net6.0-ios已计算。 net6.0-maccatalyst已计算。 net6.0-macos已计算。 net6.0-tvos已计算。 net6.0-windows已计算。 net7.0已计算。 net7.0-android已计算。 net7.0-ios已计算。 net7.0-maccatalyst已计算。 net7.0-macos已计算。 net7.0-tvos已计算。 net7.0-windows已计算。 net8.0已计算。 net8.0-android已计算。 net8.0-browser已计算。 net8.0-ios已计算。 net8.0-maccatalyst已计算。 net8.0-macos已计算。 net8.0-tvos已计算。 net8.0-windows已计算。
.NET Core netcoreapp2.0已计算。 netcoreapp2.1已计算。 netcoreapp2.2已计算。 netcoreapp3.0已计算。 netcoreapp3.1已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET 框架 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
已包含的目标框架(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet 包 (1)

显示依赖于 Trulla.SourceGenerator.Core 的 top 1 个 NuGet 包

下载
Trulla.SourceGenerator

一个强类型文本模板源生成器。

GitHub 仓库

该包没有被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.4.2 1,307 10/20/2023
1.4.1 1,091 10/18/2023
1.4.0-preview01 1,170 10/17/2023
1.3.0 2,994 9/18/2023
1.3.0-preview7 1,287 9/15/2023
1.3.0-preview6 3,713 9/15/2023
1.3.0-preview18 1,233 9/18/2023
1.3.0-preview17 1,283 9/18/2023
1.3.0-preview16 992 9/18/2023
1.3.0-preview15 1,342 9/18/2023
1.3.0-preview14 1,218 9/18/2023
1.3.0-preview13 1,236 9/18/2023
1.3.0-preview12 1,341 9/18/2023
1.3.0-preview11 1,148 9/17/2023
1.3.0-preview10 1,268 9/17/2023

1.4.0
     - 使用 TheBlunt 代替 FParsec

     1.3.0
     - 添加 C# 源生成器

     1.2.1
     - 在 `for` 循环中添加可选分隔符

     1.1.1
     - 移除 "实验性" 通知

     1.1.0
     - 重新访问 / 重命名为 "Trulla"

     1.0.1
     #5: 不要对 FSharp.Core 7 进行引用
     #6: 构造函数参数的稳定排序

     1.0.0
     初次发布。