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>
<Using Include="GFramework.SourceGenerators.Abstractions"/>
<Using Include="GFramework.Core.SourceGenerators.Abstractions"/>
</ItemGroup>
<ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="3.0.46">

View File

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