GeWuYou
|
eeef5961d7
|
feat(godot): 添加导出集合自动注册生成器功能
- 实现了 AutoRegisterExportedCollectionsGenerator 源生成器
- 支持扫描标记了 AutoRegisterExportedCollectionsAttribute 的 partial 类型
- 为使用 RegisterExportedCollectionAttribute 声明的集合成员生成集中注册方法
- 提供详细的诊断支持,包括 GF_AutoExport_001 到 GF_AutoExport_008 错误码
- 支持从基类和接口继承链查找注册方法
- 实现了完整的单元测试覆盖各种使用场景
- 验证集合可枚举性、元素类型推导和注册表成员可访问性
- 生成安全的空值检查代码防止运行时异常
- 支持泛型类型约束和复杂继承关系的处理
|
2026-04-13 20:04:14 +08:00 |
|
GeWuYou
|
812235a243
|
test(generator): 添加批量注册集合生成器的单元测试
- 添加了针对注解集合生成批处理注册方法的测试用例
- 添加了当集合元素类型无法推断时报告诊断的测试
- 添加了注册方法使用数组参数时的批处理注册测试
- 添加了从继承接口获取注册方法的批处理注册测试
- 添加了从基类获取注册方法的批处理注册测试
- 添加了当集合成员不可实例读取时报告诊断的测试
- 添加了当注册成员不可实例读取时报告诊断的测试
- 添加了当注册方法对所有者类型不可访问时报告诊断的测试
- 添加了当注册导出集合属性参数无效时报告诊断的测试
- 添加了多个分部声明注解时仅生成一个源文件的测试
- 为枚举候选方法功能添加了详细的XML文档注释
|
2026-04-13 19:39:40 +08:00 |
|
GeWuYou
|
5e1e16f86e
|
feat(generator): 添加对继承层次结构中注册方法的支持
- 实现 EnumerateCandidateMethods 方法以搜索基类和接口中的注册方法
- 修改 AutoRegisterExportedCollectionsGenerator 以支持从继承链中查找兼容的注册方法
- 添加完整的单元测试覆盖继承、接口实现和泛型场景
- 修复静态成员和不可访问方法的诊断报告功能
- 增强源代码生成器对复杂继承结构的支持能力
|
2026-04-13 19:17:06 +08:00 |
|
GeWuYou
|
62d448354c
|
feat: 增强生成器属性参数校验与泛型约束支持,完善诊断体系
### 属性参数校验(Attribute Validation)
- AutoUiPageGenerator
- 新增 GF_AutoBehavior_004 诊断:
- 检测 AutoUiPageAttribute 参数无效情况
- 添加测试用例验证错误参数的诊断报告
- AutoRegisterExportedCollectionsGenerator
- 新增 GF_AutoExport_008 诊断:
- 检测 RegisterExportedCollectionAttribute 参数无效情况
- 改进 TryGetRegistrationAttributeArguments 方法:
- 精确报告错误位置
- 更新文档以包含新增诊断规则
### 泛型约束支持(Generic Constraints)
- AutoUiPageGenerator / AutoRegisterModuleGenerator
- 支持以下泛型约束的正确生成:
- class?
- notnull
- unmanaged
- 添加对应测试用例确保生成正确性
### 诊断体系优化(Diagnostics Improvements)
- AutoRegisterModuleGenerator
- 重构 AutoRegisterModuleDiagnostics:
- 优化诊断定义顺序,提高可读性与维护性
|
2026-04-13 15:13:51 +08:00 |
|
GeWuYou
|
be928718e3
|
feat: 增强 AutoSceneGenerator 与 AutoRegisterExportedCollectionsGenerator 的验证与安全机制
### AutoSceneGenerator
- 引入保留成员名称集合(GeneratedMemberNames),包含:
- SceneKeyStr
- __autoSceneBehavior_Generated
- 实现 ReportGeneratedMemberConflicts 方法:
- 检测用户定义成员与生成成员冲突
- 提供清晰的诊断信息
- 在生成流程中集成冲突检测,避免重复成员导致的编译错误
### AutoRegisterExportedCollectionsGenerator
- 增强集合注册生成器的验证逻辑:
- 新增诊断 GF_AutoExport_006:导出集合成员必须为实例可读成员
- 新增诊断 GF_AutoExport_007:注册表成员必须为实例可读成员
- 实现 IsInstanceReadableMember 方法:
- 校验成员为非静态字段或可读属性
- 修复符号访问性检查:
- 确保注册方法对所有者类型可访问
- 优化生成逻辑:
- 过滤重复的部分类声明,仅生成一次源码
### Tests
- AutoSceneGenerator
- 覆盖保留成员冲突场景:
- SceneKeyStr 冲突
- __autoSceneBehavior_Generated 冲突
- AutoRegisterExportedCollectionsGenerator
- 覆盖完整验证逻辑:
- 不可读成员 → GF_AutoExport_006 / 007
- 方法不可访问 → GF_AutoExport_003
- 多个 partial class → 仅生成一个源文件
|
2026-04-13 13:04:00 +08:00 |
|
GeWuYou
|
3fadba2d79
|
feat(generator): 添加导出集合自动注册生成器
- 实现了 AutoRegisterExportedCollectionsGenerator 源生成器
- 支持扫描标记了 AutoRegisterExportedCollectionsAttribute 的 partial 类型
- 为使用 RegisterExportedCollectionAttribute 声明的集合成员生成集中注册方法
- 添加了类型验证和诊断报告功能
- 实现了集合元素类型推导和注册方法兼容性检查
- 生成批量注册样板代码以简化手动注册流程
- 添加了完整的单元测试覆盖各种使用场景
|
2026-04-13 12:27:27 +08:00 |
|
GeWuYou
|
d21fac42b0
|
feat(generator): 添加 AutoScene 和 AutoRegisterExportedCollections 源代码生成器
- 实现 AutoSceneGenerator 为标记了 [AutoScene] 的 Godot 节点生成场景行为样板
- 实现 AutoRegisterExportedCollectionsGenerator 为导出集合生成批量注册方法
- 添加完整的单元测试覆盖两种源代码生成器的功能和诊断
- 支持泛型类型参数约束的正确生成
- 提供详细的诊断信息帮助用户修复配置错误
|
2026-04-13 11:25:49 +08:00 |
|
GeWuYou
|
80acf84e95
|
feat(godot): 添加AutoScene和AutoRegisterExportedCollections源代码生成器
- 实现AutoSceneGenerator为标记了[AutoScene]特性的Godot节点生成场景行为样板代码
- 实现AutoRegisterExportedCollectionsGenerator为导出集合生成批量注册样板方法
- 添加AutoBehaviorDiagnostics和AutoRegisterExportedCollectionsDiagnostics诊断描述符
- 创建AnalyzerReleases.Unshipped.md文件跟踪新的分析器规则
- 添加完整的单元测试覆盖两个生成器的功能和错误情况
- 更新.gitignore文件排除dotnet-home和脚本缓存目录
|
2026-04-13 10:51:40 +08:00 |
|
GeWuYou
|
eb307bf188
|
feat(generator): 添加代码生成器诊断规则和测试用例
- 定义了 Godot 源代码生成器的诊断规则表格
- 添加了上下文获取生成器的全面单元测试
- 实现了自动生成行为和注册导出集合的诊断功能
- 配置了全局 using 语句简化代码生成器实现
- 添加了完整的分析器发布跟踪文档记录新规则
|
2026-04-13 10:01:46 +08:00 |
|
dependabot[bot]
|
396397356c
|
Bump Microsoft.NET.Test.Sdk from 18.3.0 to 18.4.0
---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
dependency-version: 18.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2026-04-10 17:06:35 +08:00 |
|
GeWuYou
|
6fa4580893
|
feat(generator): 添加 BindNodeSignal 和 GetNode 源代码生成器
- 实现 BindNodeSignalGenerator 用于生成节点信号绑定与解绑逻辑
- 实现 GetNodeGenerator 用于生成 Godot 节点获取注入逻辑
- 添加 BindNodeSignalDiagnostics 提供详细的诊断错误信息
- 集成到 AnalyzerReleases.Unshipped.md 追踪新的分析规则
- 支持 [BindNodeSignal] 属性的方法自动生成事件绑定代码
- 支持 [GetNode] 属性的字段自动生成节点获取代码
- 提供生命周期方法集成的智能提示和验证功能
|
2026-03-31 11:11:23 +08:00 |
|
GeWuYou
|
2dfd6e044f
|
feat(Godot.SourceGenerators): 添加 BindNodeSignal 源代码生成器
- 实现 BindNodeSignalGenerator 源代码生成器,用于自动化节点信号绑定
- 添加完整的诊断系统,包含 11 种不同的错误和警告场景检测
- 生成对称的绑定和解绑方法,确保资源正确释放
- 支持一个处理方法通过多个特性绑定到多个节点事件
- 实现生命周期钩子调用检查,确保在 _Ready 和 _ExitTree 中正确调用生成的方法
- 提供详细的单元测试覆盖各种使用场景和边界条件
- 生成器与现有的 GetNode 声明完全兼容并可共存
- 包含命名冲突检测和构造参数验证等安全检查机制
|
2026-03-31 10:26:44 +08:00 |
|
GeWuYou
|
5b996d8618
|
feat(generator): 添加 BindNodeSignal 源生成器实现
- 实现 BindNodeSignalGenerator 源生成器,用于自动生成 Godot 节点事件绑定与解绑逻辑
- 添加 BindNodeSignalAttribute 特性,标记需要生成绑定逻辑的事件处理方法
- 实现完整的诊断系统,包括嵌套类型、静态方法、字段类型等错误检查
- 添加生命周期方法调用检查,在 _Ready 和 _ExitTree 中验证生成方法的调用
- 支持方法签名与事件委托的兼容性验证
- 实现单元测试覆盖各种使用场景和错误情况
|
2026-03-31 09:39:06 +08:00 |
|
GeWuYou
|
2f4ba63d32
|
chore(generators): 添加全局引用和依赖项
- 在 GFramework.Godot.SourceGenerators.Tests 中添加 Microsoft.CodeAnalysis 相关引用
- 在 GFramework.SourceGenerators 中添加 ImmutableCollections 和 StringBuilder 引用
- 在 GFramework.SourceGenerators 中添加 Common.Extensions 引用
- 在 GFramework.SourceGenerators.Tests 中添加测试框架相关引用
- 统一全局引用的组织结构
|
2026-03-28 19:49:46 +08:00 |
|
GeWuYou
|
535743e824
|
fix(generator): 解决源代码生成器中的换行符兼容性和集合类型候选检测问题
- 在测试中添加换行符标准化功能,确保跨平台测试一致性
- 修复ContextGetGenerator中集合类型候选检测逻辑,跳过无效类型参数
- 添加针对可空服务字段的单元测试用例
- 优化生成器对不同系统换行符的处理机制
|
2026-03-28 19:45:14 +08:00 |
|
dependabot[bot]
|
3a56dfb12d
|
Bump NUnit3TestAdapter from 6.1.0 to 6.2.0
---
updated-dependencies:
- dependency-name: NUnit3TestAdapter
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: NUnit3TestAdapter
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: NUnit3TestAdapter
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: NUnit3TestAdapter
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
- dependency-name: NUnit3TestAdapter
dependency-version: 6.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2026-03-27 15:06:56 +08:00 |
|
GeWuYou
|
9ab09cf47b
|
feat(godot): 添加 GetNode 源代码生成器功能
- 实现了 [GetNode] 属性用于标记 Godot 节点字段
- 创建了 GetNodeGenerator 源代码生成器自动注入节点获取逻辑
- 添加了节点路径推导和多种查找模式支持
- 集成了生成器到 Godot 脚手架模板中
- 添加了完整的诊断规则和错误提示
- 创建了单元测试验证生成器功能
- 更新了解决方案配置以包含新的测试项目
- 在 README 中添加了详细的使用文档和示例代码
|
2026-03-22 15:16:24 +08:00 |
|