mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 将 EnumExtensionsGenerator 的基类从 MetadataAttributeClassGeneratorBase 改为 AttributeEnumGeneratorBase - 修改 AttributeMetadataName 为静态私有字段 - 重写 ResolveAttribute 方法用于解析属性数据 - 更新 ValidateSymbol 方法参数类型为 EnumDeclarationSyntax - 调整命名空间生成逻辑,简化条件判断 - 重构 AttributeEnumGeneratorBase 基类实现 - 添加 ResolveAttribute 抽象方法用于属性解析 - 改进 Initialize 方法中的语法提供程序逻辑 - 添加 GetHintName 虚方法用于生成文件名提示
20 lines
665 B
C#
20 lines
665 B
C#
using System;
|
||
|
||
namespace GFramework.SourceGenerators.Abstractions.enums;
|
||
|
||
/// <summary>
|
||
/// 标注在 enum 上,Source Generator 会为该 enum 生成扩展方法。
|
||
/// </summary>
|
||
[AttributeUsage(AttributeTargets.Enum)]
|
||
public sealed class GenerateEnumExtensionsAttribute : Attribute
|
||
{
|
||
/// <summary>
|
||
/// 是否为每个枚举项生成单独的 IsXXX 方法(默认 true)。
|
||
/// </summary>
|
||
public bool GenerateIsMethods { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否生成一个 IsIn(params T[]) 方法以简化多值判断(默认 true)。
|
||
/// </summary>
|
||
public bool GenerateIsInMethod { get; set; } = true;
|
||
} |