gewuyou 979db3b5a5 docs(reader-facing): 统一站内入口与公开术语
- 更新入口页的 reader-facing 骨架,统一起步路线、阅读顺序与站内导航
- 收口公开 README 与 Godot 页面中的内部口吻、文件名式表述和术语噪音
- 移除 docs/zh-CN 中残留的 GitHub README 外链,并同步刷新文档治理恢复状态
2026-04-27 08:55:18 +08:00

5.2 KiB

title, description
title description
源码生成器 按模块梳理 GFramework 当前发布的源码生成器包、运行时归属与推荐选包入口。

源码生成器

Source Generators 栏目对应 GFramework 当前按模块拆分发布的编译期工具链。

如果你当前最关心的是“我该装哪个生成器包、它服务哪个运行时、接下来该去哪看示例或专题页”,先看这一页。

当前包拆分

GFramework 当前发布的生成器包是:

  • GeWuYou.GFramework.Core.SourceGenerators
  • GeWuYou.GFramework.Game.SourceGenerators
  • GeWuYou.GFramework.Cqrs.SourceGenerators
  • GeWuYou.GFramework.Godot.SourceGenerators

不存在 GeWuYou.GFramework.SourceGenerators*.SourceGenerators.Attributes 这类聚合包。

先按场景选包

使用场景 安装包 继续阅读
减少日志、上下文注入、模块自动注册等 Core 侧样板代码 GeWuYou.GFramework.Core.SourceGenerators Core 模块日志生成器ContextAware 生成器
schemas/**/*.schema.json 生成成配置类型和表包装 GeWuYou.GFramework.Game.SourceGenerators 配置系统VS Code 配置工具
让 CQRS handler registry 在编译期生成,缩小运行时反射扫描范围 GeWuYou.GFramework.Cqrs.SourceGenerators CQRS 运行时CQRS Handler Registry 生成器
在 Godot 项目里生成 AutoLoad / Input Action 入口、节点 / 信号样板,或补齐 Scene/UI 包装与导出集合注册辅助 GeWuYou.GFramework.Godot.SourceGenerators Godot 模块总览Godot 项目生成器GetNode 生成器

与运行时的关系

这些包都是编译期工具链,不是运行时库。

对应关系如下:

生成器包 主要服务的运行时
GFramework.Core.SourceGenerators GFramework.Core
GFramework.Game.SourceGenerators GFramework.Game
GFramework.Cqrs.SourceGenerators GFramework.Cqrs
GFramework.Godot.SourceGenerators GFramework.Godot

安装时通常保持生成器包与对应运行时包版本一致,并将生成器声明为:

<PackageReference Include="GeWuYou.GFramework.Core.SourceGenerators"
                  Version="x.y.z"
                  PrivateAssets="all"
                  ExcludeAssets="runtime" />

其他生成器包的安装模式相同。

共享支撑模块

除了上面的可直接安装包,仓库里还有三类跟随这些生成器共同演化的支撑目录:

  • GFramework.SourceGenerators.Common
    • 承载跨生成器共享的基类、通用 diagnostics 和生成冲突规则。
  • GFramework.Core.SourceGenerators.Abstractions
    • 承载 Core 侧生成器特性定义,例如 [Log][ContextAware][GetModel][GenerateEnumExtensions]
  • GFramework.Godot.SourceGenerators.Abstractions
    • 承载 Godot 侧生成器特性定义,例如 [GetNode][BindNodeSignal][AutoScene][AutoUiPage]

这些目录当前都不是新的安装入口。更实用的理解方式是:

  • 先判断你要装哪个 *.SourceGenerators
  • 再根据 attribute 或 diagnostics 回到对应专题页
  • 只有在排查生成失败原因时,才继续下钻到这些共享支撑目录

这个栏目怎么读

Core 侧通用生成器

Game / CQRS 相关生成器

Godot 专用生成器

推荐接入顺序

  1. 先确认你已经选定运行时层,而不是先装生成器
  2. 再按运行时模块补充对应的生成器包
  3. 只在确实需要的项目里安装生成器,避免为了“可能以后会用”而把所有包一起引入

例如:

  • 新项目只需要 Core 上下文注入和日志辅助:
    • 安装 Core + Core.SourceGenerators
  • 需要静态 YAML 配置:
    • 安装 Game + Game.SourceGenerators
  • 需要 CQRS 生成注册表:
    • 安装 Cqrs + Cqrs.SourceGenerators

对应模块入口