GeWuYou 330bd8b0b0 feat(generator): 添加优先级源代码生成器和相关分析器
- 新增 PriorityGenerator 源生成器,自动生成 IPrioritized 接口实现
- 添加 PriorityAttribute 特性,用于标记类的优先级值
- 实现 PriorityUsageAnalyzer 分析器,检测优先级使用建议
- 添加预定义的 PriorityGroup 常量,提供标准优先级分组
- 在 AnalyzerReleases.Unshipped.md 中注册新的诊断规则
- 更新项目依赖,升级 Meziantou.Analyzer 和 Polyfill 版本
- 为测试项目添加源生成器项目引用
- 添加 PriorityGenerator 的快照测试用例
2026-03-05 22:52:59 +08:00

35 lines
1.0 KiB
C#

namespace GFramework.SourceGenerators.Abstractions.bases;
/// <summary>
/// 标记类的优先级,自动生成 <see cref="GFramework.Core.Abstractions.bases.IPrioritized"/> 接口实现
/// </summary>
/// <remarks>
/// 使用此特性可以避免手动实现 IPrioritized 接口。
/// 优先级值越小,优先级越高(负数表示高优先级)。
/// </remarks>
/// <example>
/// <code>
/// [Priority(10)]
/// public partial class MySystem : AbstractSystem
/// {
/// // 自动生成: public int Priority => 10;
/// }
/// </code>
/// </example>
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
public sealed class PriorityAttribute : Attribute
{
/// <summary>
/// 初始化 <see cref="PriorityAttribute"/> 类的新实例
/// </summary>
/// <param name="value">优先级值,越小优先级越高</param>
public PriorityAttribute(int value)
{
Value = value;
}
/// <summary>
/// 获取优先级值
/// </summary>
public int Value { get; }
}