mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 新增 PriorityGenerator 源生成器,自动生成 IPrioritized 接口实现 - 添加 PriorityAttribute 特性,用于标记类的优先级值 - 实现 PriorityUsageAnalyzer 分析器,检测优先级使用建议 - 添加预定义的 PriorityGroup 常量,提供标准优先级分组 - 在 AnalyzerReleases.Unshipped.md 中注册新的诊断规则 - 更新项目依赖,升级 Meziantou.Analyzer 和 Polyfill 版本 - 为测试项目添加源生成器项目引用 - 添加 PriorityGenerator 的快照测试用例
35 lines
1.0 KiB
C#
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; }
|
|
} |