mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-12 21:41:49 +08:00
docs(source-generators): 添加源代码生成器文档和相关常量定义
- 新增完整的 GFramework.SourceGenerators 文档,涵盖所有核心特性 - 添加 Log 属性生成器、Config Schema 生成器等详细使用说明 - 添加 ContextAware、GenerateEnumExtensions 等属性生成器文档 - 添加 Godot 专用生成器如 GetNode、BindNodeSignal 等使用指南 - 添加 AutoRegisterModule、AutoUiPage、AutoScene 等自动化工具文档 - 添加诊断信息、性能优势、使用示例和最佳实践章节 - 新增 PathContests 常量类定义 GFramework 项目路径常量 - 添加 ContextRegistrationAnalyzerTests 测试类验证上下文注册分析器
This commit is contained in:
parent
9f9a421b6c
commit
534818f5f6
@ -39,7 +39,7 @@ public static class PathContests
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// GFramework源代码生成器抽象层命名空间
|
/// GFramework源代码生成器抽象层命名空间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string SourceGeneratorsAbstractionsPath = $"{BaseNamespace}.SourceGenerators.Abstractions";
|
public const string SourceGeneratorsAbstractionsPath = $"{CoreNamespace}.SourceGenerators.Abstractions";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// GFramework Godot源代码生成器抽象层命名空间
|
/// GFramework Godot源代码生成器抽象层命名空间
|
||||||
|
|||||||
@ -121,7 +121,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
public sealed class GetModelAttribute : Attribute { }
|
public sealed class GetModelAttribute : Attribute { }
|
||||||
public sealed class GetModelsAttribute : Attribute { }
|
public sealed class GetModelsAttribute : Attribute { }
|
||||||
@ -142,7 +142,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -337,7 +337,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Abstractions.Utility;
|
using GFramework.Core.Abstractions.Utility;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryUtility : IUtility { }
|
public interface IInventoryUtility : IUtility { }
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -477,7 +477,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
@ -532,7 +532,7 @@ public sealed class ContextRegistrationAnalyzerTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Architectures;
|
using GFramework.Core.Architectures;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
public interface IInventoryModel : IModel { }
|
public interface IInventoryModel : IModel { }
|
||||||
|
|
||||||
|
|||||||
@ -14,9 +14,9 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
{
|
{
|
||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Architectures
|
namespace GFramework.Core.SourceGenerators.Abstractions.Architectures
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
||||||
@ -70,7 +70,7 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.Core.Abstractions.Systems;
|
using GFramework.Core.Abstractions.Systems;
|
||||||
using GFramework.Core.Abstractions.Utility;
|
using GFramework.Core.Abstractions.Utility;
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
public sealed class PlayerModel : IModel { }
|
public sealed class PlayerModel : IModel { }
|
||||||
public sealed class CombatSystem : ISystem { }
|
public sealed class CombatSystem : ISystem { }
|
||||||
@ -118,7 +118,7 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
const string commonSource = """
|
const string commonSource = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Architectures
|
namespace GFramework.Core.SourceGenerators.Abstractions.Architectures
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
||||||
@ -182,7 +182,7 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
const string partASource = """
|
const string partASource = """
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
// Padding ensures this attribute lives later in the file than the attributes in PartB.
|
// Padding ensures this attribute lives later in the file than the attributes in PartB.
|
||||||
// The generator should still place it first because PartA sorts before PartB.
|
// The generator should still place it first because PartA sorts before PartB.
|
||||||
@ -207,7 +207,7 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
const string partBSource = """
|
const string partBSource = """
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
[RegisterSystem(typeof(CombatSystem))]
|
[RegisterSystem(typeof(CombatSystem))]
|
||||||
[RegisterModel(typeof(PlayerModel))]
|
[RegisterModel(typeof(PlayerModel))]
|
||||||
@ -266,9 +266,9 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
#nullable enable
|
#nullable enable
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Architectures
|
namespace GFramework.Core.SourceGenerators.Abstractions.Architectures
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
public sealed class AutoRegisterModuleAttribute : Attribute { }
|
||||||
@ -320,7 +320,7 @@ public class AutoRegisterModuleGeneratorTests
|
|||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.Core.Abstractions.Model;
|
using GFramework.Core.Abstractions.Model;
|
||||||
using GFramework.SourceGenerators.Abstractions.Architectures;
|
using GFramework.Core.SourceGenerators.Abstractions.Architectures;
|
||||||
|
|
||||||
public sealed class PlayerModel : IModel { }
|
public sealed class PlayerModel : IModel { }
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Bases
|
namespace GFramework.Core.SourceGenerators.Abstractions.Bases
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class PriorityAttribute : Attribute
|
public sealed class PriorityAttribute : Attribute
|
||||||
@ -39,7 +39,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Bases;
|
using GFramework.Core.SourceGenerators.Abstractions.Bases;
|
||||||
|
|
||||||
[Priority(10)]
|
[Priority(10)]
|
||||||
public partial class MySystem
|
public partial class MySystem
|
||||||
@ -67,7 +67,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Bases
|
namespace GFramework.Core.SourceGenerators.Abstractions.Bases
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class PriorityAttribute : Attribute
|
public sealed class PriorityAttribute : Attribute
|
||||||
@ -87,7 +87,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Bases;
|
using GFramework.Core.SourceGenerators.Abstractions.Bases;
|
||||||
|
|
||||||
[Priority(-100)]
|
[Priority(-100)]
|
||||||
public partial class CriticalSystem
|
public partial class CriticalSystem
|
||||||
@ -115,7 +115,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Bases
|
namespace GFramework.Core.SourceGenerators.Abstractions.Bases
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class PriorityAttribute : Attribute
|
public sealed class PriorityAttribute : Attribute
|
||||||
@ -144,7 +144,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Bases;
|
using GFramework.Core.SourceGenerators.Abstractions.Bases;
|
||||||
using GFramework.Core.Abstractions.Bases;
|
using GFramework.Core.Abstractions.Bases;
|
||||||
|
|
||||||
[Priority(PriorityGroup.High)]
|
[Priority(PriorityGroup.High)]
|
||||||
@ -173,7 +173,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Bases
|
namespace GFramework.Core.SourceGenerators.Abstractions.Bases
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
|
||||||
public sealed class PriorityAttribute : Attribute
|
public sealed class PriorityAttribute : Attribute
|
||||||
@ -193,7 +193,7 @@ public class PriorityGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Bases;
|
using GFramework.Core.SourceGenerators.Abstractions.Bases;
|
||||||
|
|
||||||
[Priority(20)]
|
[Priority(20)]
|
||||||
public partial class GenericSystem<T>
|
public partial class GenericSystem<T>
|
||||||
|
|||||||
@ -13,7 +13,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Enums
|
namespace GFramework.Core.SourceGenerators.Abstractions.Enums
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Enum)]
|
[AttributeUsage(AttributeTargets.Enum)]
|
||||||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||||||
@ -25,7 +25,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Enums;
|
using GFramework.Core.SourceGenerators.Abstractions.Enums;
|
||||||
|
|
||||||
[GenerateEnumExtensions]
|
[GenerateEnumExtensions]
|
||||||
public enum Status
|
public enum Status
|
||||||
@ -53,7 +53,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Enums
|
namespace GFramework.Core.SourceGenerators.Abstractions.Enums
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Enum)]
|
[AttributeUsage(AttributeTargets.Enum)]
|
||||||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||||||
@ -65,7 +65,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Enums;
|
using GFramework.Core.SourceGenerators.Abstractions.Enums;
|
||||||
|
|
||||||
[GenerateEnumExtensions]
|
[GenerateEnumExtensions]
|
||||||
public enum Status
|
public enum Status
|
||||||
@ -92,7 +92,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Enums
|
namespace GFramework.Core.SourceGenerators.Abstractions.Enums
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Enum)]
|
[AttributeUsage(AttributeTargets.Enum)]
|
||||||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||||||
@ -104,7 +104,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Enums;
|
using GFramework.Core.SourceGenerators.Abstractions.Enums;
|
||||||
|
|
||||||
[GenerateEnumExtensions]
|
[GenerateEnumExtensions]
|
||||||
[Flags]
|
[Flags]
|
||||||
@ -134,7 +134,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Enums
|
namespace GFramework.Core.SourceGenerators.Abstractions.Enums
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Enum)]
|
[AttributeUsage(AttributeTargets.Enum)]
|
||||||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||||||
@ -146,7 +146,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Enums;
|
using GFramework.Core.SourceGenerators.Abstractions.Enums;
|
||||||
|
|
||||||
[GenerateEnumExtensions(GenerateIsMethods = false)]
|
[GenerateEnumExtensions(GenerateIsMethods = false)]
|
||||||
public enum Status
|
public enum Status
|
||||||
@ -173,7 +173,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Enums
|
namespace GFramework.Core.SourceGenerators.Abstractions.Enums
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Enum)]
|
[AttributeUsage(AttributeTargets.Enum)]
|
||||||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||||||
@ -185,7 +185,7 @@ public class EnumExtensionsGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Enums;
|
using GFramework.Core.SourceGenerators.Abstractions.Enums;
|
||||||
|
|
||||||
[GenerateEnumExtensions(GenerateIsInMethod = false)]
|
[GenerateEnumExtensions(GenerateIsInMethod = false)]
|
||||||
public enum Status
|
public enum Status
|
||||||
|
|||||||
@ -13,7 +13,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -85,7 +85,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log]
|
[Log]
|
||||||
public partial class MyService
|
public partial class MyService
|
||||||
@ -110,7 +110,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -182,7 +182,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log(Name = "CustomLogger")]
|
[Log(Name = "CustomLogger")]
|
||||||
public partial class MyService
|
public partial class MyService
|
||||||
@ -207,7 +207,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -279,7 +279,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log(FieldName = "MyLogger")]
|
[Log(FieldName = "MyLogger")]
|
||||||
public partial class MyService
|
public partial class MyService
|
||||||
@ -304,7 +304,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -376,7 +376,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log(IsStatic = false)]
|
[Log(IsStatic = false)]
|
||||||
public partial class MyService
|
public partial class MyService
|
||||||
@ -401,7 +401,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -473,7 +473,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log(AccessModifier = "public")]
|
[Log(AccessModifier = "public")]
|
||||||
public partial class MyService
|
public partial class MyService
|
||||||
@ -498,7 +498,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Logging
|
namespace GFramework.Core.SourceGenerators.Abstractions.Logging
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class LogAttribute : Attribute
|
public sealed class LogAttribute : Attribute
|
||||||
@ -570,7 +570,7 @@ public class LoggerGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Logging;
|
using GFramework.Core.SourceGenerators.Abstractions.Logging;
|
||||||
|
|
||||||
[Log]
|
[Log]
|
||||||
public partial class MyService<T>
|
public partial class MyService<T>
|
||||||
|
|||||||
@ -23,7 +23,7 @@ public class ContextAwareGeneratorSnapshotTests
|
|||||||
const string source = """
|
const string source = """
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class)]
|
[AttributeUsage(AttributeTargets.Class)]
|
||||||
public sealed class ContextAwareAttribute : Attribute { }
|
public sealed class ContextAwareAttribute : Attribute { }
|
||||||
@ -73,7 +73,7 @@ public class ContextAwareGeneratorSnapshotTests
|
|||||||
|
|
||||||
namespace TestApp
|
namespace TestApp
|
||||||
{
|
{
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
using GFramework.Core.Abstractions.Rule;
|
using GFramework.Core.Abstractions.Rule;
|
||||||
|
|
||||||
[ContextAware]
|
[ContextAware]
|
||||||
|
|||||||
@ -12,9 +12,9 @@ public class ContextGetGeneratorTests
|
|||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class ContextAwareAttribute : Attribute { }
|
public sealed class ContextAwareAttribute : Attribute { }
|
||||||
@ -102,9 +102,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class ContextAwareAttribute : Attribute { }
|
public sealed class ContextAwareAttribute : Attribute { }
|
||||||
@ -148,7 +148,7 @@ public class ContextGetGeneratorTests
|
|||||||
[ContextAware]
|
[ContextAware]
|
||||||
public partial class InventoryPanel
|
public partial class InventoryPanel
|
||||||
{
|
{
|
||||||
[global::GFramework.SourceGenerators.Abstractions.Rule.GetModel]
|
[global::GFramework.Core.SourceGenerators.Abstractions.Rule.GetModel]
|
||||||
private IInventoryModel _model = null!;
|
private IInventoryModel _model = null!;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -184,9 +184,9 @@ public class ContextGetGeneratorTests
|
|||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class GetAllAttribute : Attribute { }
|
public sealed class GetAllAttribute : Attribute { }
|
||||||
@ -291,9 +291,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class GetAllAttribute : Attribute { }
|
public sealed class GetAllAttribute : Attribute { }
|
||||||
@ -382,9 +382,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class ContextAwareAttribute : Attribute { }
|
public sealed class ContextAwareAttribute : Attribute { }
|
||||||
@ -460,9 +460,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class GetAllAttribute : Attribute { }
|
public sealed class GetAllAttribute : Attribute { }
|
||||||
@ -543,9 +543,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class GetAllAttribute : Attribute { }
|
public sealed class GetAllAttribute : Attribute { }
|
||||||
@ -644,9 +644,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class GetAllAttribute : Attribute { }
|
public sealed class GetAllAttribute : Attribute { }
|
||||||
@ -753,9 +753,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||||
public sealed class ContextAwareAttribute : Attribute { }
|
public sealed class ContextAwareAttribute : Attribute { }
|
||||||
@ -845,9 +845,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetServiceAttribute : Attribute { }
|
public sealed class GetServiceAttribute : Attribute { }
|
||||||
@ -922,9 +922,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetModelAttribute : Attribute { }
|
public sealed class GetModelAttribute : Attribute { }
|
||||||
@ -989,9 +989,9 @@ public class ContextGetGeneratorTests
|
|||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetModelsAttribute : Attribute { }
|
public sealed class GetModelsAttribute : Attribute { }
|
||||||
@ -1060,9 +1060,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetModelAttribute : Attribute { }
|
public sealed class GetModelAttribute : Attribute { }
|
||||||
@ -1131,9 +1131,9 @@ public class ContextGetGeneratorTests
|
|||||||
{
|
{
|
||||||
var source = MarkupTestSource.Parse("""
|
var source = MarkupTestSource.Parse("""
|
||||||
using System;
|
using System;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetModelAttribute : Attribute { }
|
public sealed class GetModelAttribute : Attribute { }
|
||||||
@ -1203,9 +1203,9 @@ public class ContextGetGeneratorTests
|
|||||||
var source = """
|
var source = """
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GFramework.SourceGenerators.Abstractions.Rule;
|
using GFramework.Core.SourceGenerators.Abstractions.Rule;
|
||||||
|
|
||||||
namespace GFramework.SourceGenerators.Abstractions.Rule
|
namespace GFramework.Core.SourceGenerators.Abstractions.Rule
|
||||||
{
|
{
|
||||||
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Field, Inherited = false)]
|
||||||
public sealed class GetModelsAttribute : Attribute { }
|
public sealed class GetModelsAttribute : Attribute { }
|
||||||
|
|||||||
@ -89,10 +89,10 @@ GFramework 的 source generators 利用 Roslyn 源代码生成器技术,在编
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="GeWuYou.GFramework.Core.SourceGenerators" Version="1.0.0"
|
<PackageReference Include="GeWuYou.GFramework.Core.SourceGenerators"
|
||||||
PrivateAssets="all"
|
PrivateAssets="all"
|
||||||
ExcludeAssets="runtime" />
|
ExcludeAssets="runtime" />
|
||||||
<PackageReference Include="GeWuYou.GFramework.Game.SourceGenerators" Version="1.0.0"
|
<PackageReference Include="GeWuYou.GFramework.Game.SourceGenerators"
|
||||||
PrivateAssets="all"
|
PrivateAssets="all"
|
||||||
ExcludeAssets="runtime" />
|
ExcludeAssets="runtime" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -102,6 +102,7 @@ GFramework 的 source generators 利用 Roslyn 源代码生成器技术,在编
|
|||||||
如果你只使用 Godot 生成器或 CQRS 处理器注册生成器,请把上面的包替换为对应的
|
如果你只使用 Godot 生成器或 CQRS 处理器注册生成器,请把上面的包替换为对应的
|
||||||
`GeWuYou.GFramework.Godot.SourceGenerators` 或 `GeWuYou.GFramework.Cqrs.SourceGenerators`。
|
`GeWuYou.GFramework.Godot.SourceGenerators` 或 `GeWuYou.GFramework.Cqrs.SourceGenerators`。
|
||||||
这些拆分包会同时带上各自需要的 abstractions 程序集,不需要再额外安装单独的 `*.Attributes` 包。
|
这些拆分包会同时带上各自需要的 abstractions 程序集,不需要再额外安装单独的 `*.Attributes` 包。
|
||||||
|
实际接入时请替换为当前发布版本,或与项目中其余 `GeWuYou.GFramework.*` 包保持同一版本。
|
||||||
|
|
||||||
### Config Schema 文件约定
|
### Config Schema 文件约定
|
||||||
|
|
||||||
@ -1235,11 +1236,14 @@ public partial class ServiceComponent : IService
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
A[GFramework.SourceGenerators] --> B[GFramework.Core.SourceGenerators.Abstractions]
|
A[GeWuYou.GFramework.Core.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]
|
||||||
A --> F[Microsoft.CodeAnalysis.Analyzers]
|
A --> F[Microsoft.CodeAnalysis.Analyzers]
|
||||||
|
G[GeWuYou.GFramework.Game.SourceGenerators] --> C
|
||||||
|
H[GeWuYou.GFramework.Godot.SourceGenerators] --> C
|
||||||
|
I[GeWuYou.GFramework.Cqrs.SourceGenerators] --> C
|
||||||
```
|
```
|
||||||
|
|
||||||
## 版本兼容性
|
## 版本兼容性
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user