docs(source-generators): 添加源代码生成器文档和抽象包项目

- 新增完整的 GFramework.SourceGenerators 文档,涵盖所有生成器功能
- 添加 Log 属性生成器、ContextAware 属性生成器、Config Schema 生成器等详细说明
- 包含 Godot 专用生成器如 GetNode、BindNodeSignal、AutoUiPage 等使用指南
- 提供诊断信息、性能优势、使用示例和最佳实践章节
- 创建 Core.SourceGenerators.Abstractions 项目文件和配置
- 集成 Meziantou.Analyzer 和 Meziantou.Polyfill 包引用
- 配置项目构建属性和命名空间引入设置
This commit is contained in:
GeWuYou 2026-04-16 21:16:23 +08:00
parent 0cf4945e78
commit 9f9a421b6c
2 changed files with 12 additions and 12 deletions

View File

@ -12,7 +12,7 @@
<!-- 引入必要的命名空间 --> <!-- 引入必要的命名空间 -->
<ItemGroup> <ItemGroup>
<Using Include="GFramework.SourceGenerators.Abstractions"/> <Using Include="GFramework.Core.SourceGenerators.Abstractions"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="3.0.46"> <PackageReference Update="Meziantou.Analyzer" Version="3.0.46">

View File

@ -167,7 +167,7 @@ Config Schema 生成器会扫描 `*.schema.json` 文件,并生成:
### 基础使用 ### 基础使用
```csharp ```csharp
using GFramework.SourceGenerators.Abstractions.Logging; using GFramework.Core.SourceGenerators.Abstractions.Logging;
[Log] [Log]
public partial class PlayerController public partial class PlayerController
@ -246,7 +246,7 @@ public static partial class MathHelper
```csharp ```csharp
using GFramework.Core.Abstractions.Controller; using GFramework.Core.Abstractions.Controller;
using GFramework.SourceGenerators.Abstractions.Rule; using GFramework.Core.SourceGenerators.Abstractions.Rule;
[ContextAware] [ContextAware]
public partial class PlayerController : IController public partial class PlayerController : IController
@ -354,8 +354,8 @@ public async Task TestPlayerController()
```csharp ```csharp
using GFramework.Core.Abstractions.Controller; using GFramework.Core.Abstractions.Controller;
using GFramework.SourceGenerators.Abstractions.Logging; using GFramework.Core.SourceGenerators.Abstractions.Logging;
using GFramework.SourceGenerators.Abstractions.Rule; using GFramework.Core.SourceGenerators.Abstractions.Rule;
[Log] [Log]
[ContextAware] [ContextAware]
@ -381,7 +381,7 @@ public partial class AdvancedController : IController
### 基础使用 ### 基础使用
```csharp ```csharp
using GFramework.SourceGenerators.Abstractions.Enums; using GFramework.Core.SourceGenerators.Abstractions.Enums;
[GenerateEnumExtensions] [GenerateEnumExtensions]
public enum GameState public enum GameState
@ -560,7 +560,7 @@ AutoRegisterModule 生成器面向 GFramework 模块安装场景,为类上的
### 基础示例 ### 基础示例
```csharp ```csharp
using GFramework.SourceGenerators.Abstractions.Architectures; using GFramework.Core.SourceGenerators.Abstractions.Architectures;
[AutoRegisterModule] [AutoRegisterModule]
[RegisterModel(typeof(RunStateModel))] [RegisterModel(typeof(RunStateModel))]
@ -863,8 +863,8 @@ public class InefficientController : IController
```csharp ```csharp
using GFramework.Core.Abstractions.Controller; using GFramework.Core.Abstractions.Controller;
using GFramework.SourceGenerators.Abstractions.Logging; using GFramework.Core.SourceGenerators.Abstractions.Logging;
using GFramework.SourceGenerators.Abstractions.Rule; using GFramework.Core.SourceGenerators.Abstractions.Rule;
[Log] [Log]
[ContextAware] [ContextAware]
@ -953,8 +953,8 @@ public enum CharacterState
} }
using GFramework.Core.Abstractions.Controller; using GFramework.Core.Abstractions.Controller;
using GFramework.SourceGenerators.Abstractions.Logging; using GFramework.Core.SourceGenerators.Abstractions.Logging;
using GFramework.SourceGenerators.Abstractions.Rule; using GFramework.Core.SourceGenerators.Abstractions.Rule;
[Log] [Log]
[ContextAware] [ContextAware]
@ -1235,7 +1235,7 @@ public partial class ServiceComponent : IService
```mermaid ```mermaid
graph TD graph TD
A[GFramework.SourceGenerators] --> B[GFramework.SourceGenerators.Abstractions] A[GFramework.SourceGenerators] --> B[GFramework.Core.SourceGenerators.Abstractions]
A --> C[GFramework.SourceGenerators.Common] A --> C[GFramework.SourceGenerators.Common]
A --> D[GFramework.Core.Abstractions] A --> D[GFramework.Core.Abstractions]
A --> E[Microsoft.CodeAnalysis.CSharp] A --> E[Microsoft.CodeAnalysis.CSharp]