975 Commits

Author SHA1 Message Date
GeWuYou
03580d6836 feat(game): 添加游戏内容配置系统及YAML Schema校验器
- 实现AI-First配表方案,支持怪物、物品、技能等静态内容管理
- 集成YAML配置源文件与JSON Schema结构描述功能
- 提供一对象一文件的目录组织方式和运行时只读查询能力
- 实现Source Generator生成配置类型和表包装类
- 集成VS Code插件提供配置浏览、raw编辑和递归校验功能
- 开发YamlConfigSchemaValidator实现JSON Schema子集校验
- 支持嵌套对象、对象数组、标量数组与深层enum引用约束校验
- 实现跨表引用检测和热重载时依赖表联动校验机制
2026-04-01 21:02:25 +08:00
gewuyou
965f20059f
Merge pull request #156 from GeWuYou/feat/config-management
Feat/config management
v0.0.213
2026-04-01 12:54:45 +08:00
GeWuYou
c84f62897c refactor(config): 优化YAML配置模式验证器中的允许值检查逻辑
- 将传统的空值检查和计数判断替换为更简洁的模式匹配语法
- 使用集合表达式简化代码结构,提高可读性
- 保持原有的功能逻辑不变,仅优化代码风格
2026-04-01 12:47:31 +08:00
GeWuYou
ad87f72ca6 feat(game): 添加游戏内容配置系统
- 实现基于YAML的配置文件管理和JSON Schema校验功能
- 提供YamlConfigSchemaValidator用于运行时配置校验和跨表引用检查
- 添加完整的单元测试覆盖配置加载器的各种场景
- 支持热重载功能,开发期修改配置文件后自动刷新运行时表
- 集成Source Generator生成配置类型和表包装类
- 提供VS Code插件支持配置浏览、编辑和校验操作
2026-04-01 12:38:52 +08:00
GeWuYou
5b8099cd98 feat(game): 添加游戏内容配置系统和VS Code插件支持
- 实现基于YAML的配置源文件和JSON Schema结构验证
- 提供运行时只读查询和Source Generator代码生成
- 添加VS Code插件实现配置浏览、编辑和轻量校验功能
- 支持开发期热重载和跨表引用校验
- 实现批量编辑和表单预览功能
2026-04-01 10:18:34 +08:00
GeWuYou
15761c6677 feat(game): 添加基于YAML的游戏内容配置系统
- 实现YamlConfigLoader支持从YAML文件加载配置数据
- 提供ConfigRegistry用于统一管理命名的配置表
- 支持JSON Schema校验配置结构和类型匹配
- 实现跨表引用校验避免无效引用和缺失依赖
- 提供开发期热重载功能监听文件变更自动刷新
- 支持一对象一文件的目录组织方式
- 集成VS Code插件提供配置浏览和轻量校验
- 生成器支持从schema自动生成配置类型定义
- 文档说明配置系统的使用方法和推荐目录结构
2026-04-01 09:04:28 +08:00
GeWuYou
0c662ced2a feat(game): 添加游戏内容配置系统和VS Code插件支持
- 实现YAML配置文件管理和JSON Schema验证功能
- 提供运行时只读查询和Source Generator代码生成功能
- 开发VS Code插件实现配置浏览、校验和轻量表单编辑
- 支持开发期热重载和配置变更自动刷新机制
- 集成诊断功能提供配置文件错误提示和修复建议
2026-03-31 22:49:10 +08:00
GeWuYou
e8d0ea2daf feat(game): 添加游戏内容配置系统和VS Code扩展
- 引入基于YAML和JSON Schema的静态内容配置系统
- 实现运行时只读查询和Source Generator支持
- 提供VS Code扩展用于配置浏览、验证和轻量编辑
- 支持开发期热重载和跨表引用校验功能
- 包含完整的文档说明和工具链集成
2026-03-31 22:44:58 +08:00
GeWuYou
3332aaff7b feat(config): 添加YAML配置加载器及开发期热重载功能
- 实现YamlConfigLoader支持基于文件目录的YAML配置加载
- 添加EnableHotReload方法支持开发期配置文件变更自动重载
- 提供带schema校验的配置表注册功能
- 实现按表粒度的热重载机制及错误处理回调
- 添加配置文件变更监听和防抖处理
- 更新文档说明热重载使用方法和行为特性
- 移除未完成功能列表中的运行时热重载项
2026-03-31 22:39:39 +08:00
GeWuYou
ae9693e0ff refactor(config): 更新配置加载器依赖项
- 在YamlConfigLoader中添加YamlDotNet序列化库引用
- 移除YamlConfigSchemaValidator中的未使用引用
- 在全局引用中添加YAML处理相关库引用
- 优化配置模块的依赖管理和命名空间使用
2026-03-31 22:32:57 +08:00
GeWuYou
b87e511334 docs(game): 添加游戏模块完整文档
- 创建了 GFramework.Game 模块的全面文档
- 包含架构模块系统、资产管理、存储系统和序列化系统详解
- 提供了 AbstractModule、AbstractAssetCatalogUtility 等核心组件使用示例
- 添加了分层存储、加密存储和缓存存储的实现方案
- 集成了 JSON 序列化、自定义转换器和版本化数据管理
- 提供了完整的游戏数据管理系统和自动保存系统实现
- 修改了 VitePress 配置文件
2026-03-31 22:30:33 +08:00
gewuyou
a10cc5b6f0
Merge pull request #155 from GeWuYou/docs/add-vitepress-config-with-escape-plugin
docs(vitepress): 添加文档站点配置文件
2026-03-31 19:54:05 +08:00
GeWuYou
4c64db3c58 docs(vitepress): 添加文档站点配置文件
- 实现 safeGenericEscapePlugin 插件解决 Markdown 中泛型符号转义问题
- 配置 VitePress 文档站点基本信息包括标题、描述和基础路径
- 设置多语言支持和本地搜索功能的中文翻译
- 定义导航菜单结构包含入门指南、核心框架、ECS系统等模块
- 配置侧边栏按模块分组显示详细文档页面链接
- 添加社交媒体链接、页脚信息和主题切换等 UI 元素
- 设置代码块大小警告阈值以适应大量代码示例
2026-03-31 19:28:24 +08:00
gewuyou
783570bae0
Merge pull request #154 from GeWuYou/docs/source-generators-complete-documentation
feat(docs): 初始化 GFramework 文档站点配置
2026-03-31 18:41:56 +08:00
GeWuYou
24dc2bb9cf feat(docs): 初始化 GFramework 文档站点配置
- 添加 VitePress 配置文件,设置文档标题和描述
- 实现安全泛型转义插件,保护代码块和 HTML 标签
- 配置多语言支持,设置简体中文为默认语言
- 设置文档导航栏,包含入门指南、核心框架、ECS 等模块
- 配置侧边栏结构,按模块划分文档目录
- 添加本地搜索功能,配置中文翻译选项
- 设置 GitHub Pages 部署基础路径
- 配置社交链接和页脚信息
2026-03-31 18:37:11 +08:00
gewuyou
059d5a8f41
Merge pull request #153 from GeWuYou/docs/source-generators-complete-documentation
docs(source-generators): 添加源代码生成器完整文档
2026-03-31 17:26:20 +08:00
GeWuYou
38020c32a2 docs(source-generators): 添加源代码生成器完整文档
- 新增 GFramework.SourceGenerators 主文档,介绍编译时代码生成工具
- 详细说明 Log 属性生成器的使用方法和配置选项
- 完整描述 ContextAware 属性生成器的功能和测试场景配置
- 添加 GenerateEnumExtensions 属性生成器文档和使用示例
- 介绍 GetNode 生成器(Godot 专用)的节点获取功能
- 新增 BindNodeSignal 生成器文档,说明信号绑定与解绑机制
- 提供 Context Get 注入生成器的完整使用指南
- 添加诊断信息章节,涵盖所有生成器的错误提示和解决方案
- 包含性能优势对比和基准测试结果
- 提供多个完整使用示例,展示实际应用场景
- 整理最佳实践和常见问题解答
- 添加 BindNodeSignal 生成器专用文档,详细介绍其高级用法
2026-03-31 15:10:06 +08:00
gewuyou
ba45171924
Merge pull request #152 from GeWuYou/feat/bindnodesignal-generator
Feat/bindnodesignal generator
v0.0.212
2026-03-31 12:15:54 +08:00
GeWuYou
693cad2adf refactor(generators): 统一添加必要的命名空间引用
- 在 BindNodeSignalDiagnostics.cs 中添加 Microsoft.CodeAnalysis 引用
- 在 BindNodeSignalGenerator.cs 中添加 Roslyn 相关命名空间引用
- 在 GetNodeGenerator.cs 中添加 Roslyn 相关命名空间引用
- 在 GlobalUsings.cs 中集中管理全局命名空间引用
- 在 ContextGetGenerator.cs 中添加字符串和扩展方法引用
- 在 CommonDiagnostics.cs 中添加诊断相关命名空间引用
- 在 Common 全局引用文件中统一管理 Microsoft.CodeAnalysis 引用
2026-03-31 12:09:47 +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
9cca190aff docs(generator): 添加源码生成器文档和分析器规则清单
- 新增 AnalyzerReleases.Unshipped.md 文件记录代码分析规则
- 添加 GF_Godot_GetNode 系列规则定义(001-006)
- 添加 GF_Godot_BindNodeSignal 系列规则定义(001-009)
- 创建 README.md 文件详述源码生成器使用方法
- 文档化 GetNode 和 BindNodeSignal 特性用法示例
- 说明 Godot 场景相关的编译期生成能力
2026-03-31 10:03:31 +08:00
GeWuYou
5b996d8618 feat(generator): 添加 BindNodeSignal 源生成器实现
- 实现 BindNodeSignalGenerator 源生成器,用于自动生成 Godot 节点事件绑定与解绑逻辑
- 添加 BindNodeSignalAttribute 特性,标记需要生成绑定逻辑的事件处理方法
- 实现完整的诊断系统,包括嵌套类型、静态方法、字段类型等错误检查
- 添加生命周期方法调用检查,在 _Ready 和 _ExitTree 中验证生成方法的调用
- 支持方法签名与事件委托的兼容性验证
- 实现单元测试覆盖各种使用场景和错误情况
2026-03-31 09:39:06 +08:00
GeWuYou
91f0375461 refactor(tests): 更新测试驱动程序依赖
- 添加 Microsoft.CodeAnalysis.CSharp 命名空间引用
- 优化代码结构以支持 C# 语法分析功能
- 提升测试驱动程序的编译器集成能力
2026-03-30 18:41:52 +08:00
GeWuYou
9972788c32 feat(vscode): 添加 GFramework 配置工具扩展
- 实现配置文件浏览器功能,支持工作区 config 目录下的 YAML 文件浏览
- 添加配置文件验证功能,支持基于 JSON Schema 的轻量级验证
- 提供表单预览界面,支持顶层标量字段的编辑功能
- 实现配置文件与匹配模式文件的快速打开功能
- 添加工作区设置选项,可自定义配置和模式目录路径
- 支持实时保存和验证反馈,集成 VSCode 诊断集合显示错误警告
2026-03-30 18:37:15 +08:00
GeWuYou
c9d2306295 feat(generator): 添加JSON schema配置代码生成功能
- 实现SchemaConfigGenerator源代码生成器
- 支持从JSON schema文件生成配置类型和表包装类
- 添加ConfigSchemaDiagnostics诊断系统
- 集成System.Text.Json包依赖
- 生成强类型的配置访问接口
- 支持多种数据类型包括整数、浮点数、布尔值、字符串和数组
- 实现id字段作为表主键的约束验证
- 添加完整的单元测试和快照验证
2026-03-30 18:29:31 +08:00
GeWuYou
5fa12dcd37 feat(config): 添加YAML配置加载器支持
- 新增YamlConfigLoader类支持基于目录的YAML配置加载
- 添加对.yaml和.yml文件格式的自动识别和解析
- 实现异步加载任务支持取消令牌
- 集成YamlDotNet库进行YAML反序列化处理
- 支持驼峰命名约定和忽略未匹配属性
- 实现配置表注册的链式API设计
- 添加详细的加载过程异常处理和错误信息
- 提供完整的单元测试覆盖各种加载场景
- 更新项目依赖添加YamlDotNet包引用16.3.0版本
2026-03-30 14:13:26 +08:00
GeWuYou
c0aa8ba70e feat(config): 添加配置管理系统核心组件
- 实现了 ConfigRegistry 配置注册表,支持按名称注册和类型安全查询
- 创建了 InMemoryConfigTable 内存配置表,提供基于字典的只读配置存储
- 定义了 IConfigLoader、IConfigRegistry 和 IConfigTable 接口契约
- 添加了完整的单元测试验证配置表的注册、查询和类型检查功能
- 在项目文件中添加了新的代码文件夹结构
- 实现了配置表的覆盖策略以支持开发期热重载需求
2026-03-30 13:18:54 +08:00
gewuyou
a628ade28e
Merge pull request #151 from GeWuYou/feat/generator-skip-static-readonly-fields
feat(generator): 添加对 [GetAll] 特性的静态和只读字段跳过支持
v0.0.211
2026-03-30 09:27:34 +08:00
GeWuYou
9590bf1dd9 chore(generator): 更新代码生成器依赖引入
- 在 ContextGetGenerator 中添加 System.Text 和 Extensions 引入
- 在测试文件中添加 Microsoft.CodeAnalysis.Text 引入
2026-03-30 09:22:59 +08:00
GeWuYou
da34b2fa2a feat(generator): 添加对 const 字段的显式跳过支持
- 在 ContextGetGenerator 中添加对 const 字段的显式检查和跳过逻辑
- 更新文档说明 const、static 和 readonly 字段的处理方式
- 重构测试代码使用 MarkupTestSource 解析器进行更精确的诊断测试
- 添加新的 MarkupTestSource 类用于源码标记解析和诊断定位
2026-03-30 09:13:45 +08:00
GeWuYou
2ae16b22eb docs(constants): 更新源代码生成器命名空间注释
- 将GFramework源代码生成器抽象层命名空间注释更正为GFramework源代码生成器根命名空间
2026-03-30 08:44:36 +08:00
GeWuYou
2ae783c127 feat(generator): 添加对 [GetAll] 特性的静态和只读字段跳过支持
- 添加了新的诊断规则 GF_ContextGet_007 和 GF_ContextGet_08
- 实现了对静态字段和只读字段的跳过逻辑
- 为 [GetAll] 特性添加了跳过字段的警告提示
- 更新了测试用例验证跳过逻辑的正确性
- 修改了代码生成顺序以确保正确的绑定推断
- 在 README 中添加了关于字段跳过的文档说明
2026-03-30 08:40:57 +08:00
gewuyou
63cb6b5e17
Merge pull request #150 from GeWuYou/feat/array-extensions-2d-helper-methods-
Feat/array extensions 2d helper methods
2026-03-30 08:25:50 +08:00
GeWuYou
fa82c33992 perf(ArrayExtensions): 优化二维数组扩展方法性能并添加单元测试
- 在 IsInBounds 和 Enumerate 方法中缓存数组维度长度,避免重复读取元数据
- 为 TryGet 方法添加 MaybeNullWhen 特性注解以改善空值检查
- 更新 TryGet 方法文档说明其在失败时返回默认值的行为
- 新增 ArrayExtensionsTests 类,包含 TryGet 和 Enumerate 方法的完整测试用例
- 添加 using System.Diagnostics.CodeAnalysis 引入空值相关特性支持
2026-03-30 08:18:07 +08:00
GeWuYou
dfbd6a69c5 feat(ArrayExtensions): 添加二维数组扩展方法
- 添加 GetOrDefault 方法用于获取越界时返回默认值的元素
- 添加 GetOr 方法用于获取越界时返回指定回退值的元素
- 添加 TryGet 方法用于尝试获取指定位置的元素
- 添加 GetNeighbors4 方法用于获取四个方向的邻居坐标
- 添加 GetNeighbors8 方法用于获取八个方向的邻居坐标
- 添加 Enumerate 方法用于枚举数组中所有元素及坐标
- 添加 Width 和 Height 方法分别获取数组宽高维度
- 在文件头注释中修复版权年份格式问题
2026-03-29 22:54:15 +08:00
GeWuYou
6908c74efc feat(extensions): 添加数组扩展方法支持二维数组边界检查
- 实现 IsInBounds 扩展方法用于检查二维数组坐标边界
- 提供泛型支持以适配不同类型的二维数组
- 包含完整的 XML 文档注释说明方法用途和参数
- 遵循 Apache 2.0 开源协议规范添加版权头文件
2026-03-29 22:04:14 +08:00
gewuyou
76a1406346
Merge pull request #149 from GeWuYou/docs/generators-priority-context-injection
docs(generators): 添加 Priority 和 Context Get 生成器文档
2026-03-29 20:30:09 +08:00
GeWuYou
c9423702a2 docs(context-get): 更新上下文注入生成器文档
- 在多个示例中添加 __InjectContextBindings_Generated() 调用
- 重写推荐调用时机与模式章节,强调在生命周期入口统一调用
- 添加 Godot 节点和测试场景的具体使用模式
- 重构诊断信息表格,整合 Priority 和 Context Get 相关诊断
- 更新 FAQ 部分关于构造函数使用的建议
2026-03-29 20:23:45 +08:00
GeWuYou
159578ab90 feat(docs): 添加泛型安全转义插件并增加源代码生成器文档
- 实现 safeGenericEscapePlugin 插件保护 Markdown 中的泛型语法
- 配置 Vite 构建选项提高代码块大小警告阈值至 1000
- 添加 Priority 生成器和 Context Get 注入文档链接
- 重构配置文件结构将插件函数移至顶部定义
- 确保代码块和 HTML 标签在转义过程中得到正确保护
2026-03-29 20:08:20 +08:00
GeWuYou
010ab70b7f docs(generators): 添加 Priority 和 Context Get 生成器文档
- 新增 Priority 生成器文档,介绍自动实现 IPrioritized 接口的功能
- 新增 Context Get 注入生成器文档,说明自动注入架构组件的特性
- 更新索引页面,添加新生成器的导航链接和功能描述
- 补充 EnumGenerator 配置选项说明,列出已实现和未实现的选项
- 添加完整的诊断信息说明,涵盖新生成器的所有错误场景
2026-03-29 19:54:26 +08:00
gewuyou
428b932f66
Merge pull request #148 from GeWuYou/fix/context-get-generator-service-binding-
Fix/context get generator service binding
v0.0.210
2026-03-28 19:54:40 +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
GeWuYou
4fb1da2da6 refactor(GFramework.SourceGenerators): 优化集合类型候选枚举逻辑
- 将嵌套循环重构为使用 SelectMany 扁平化集合类型参数
- 简化了候选元素类型的遍历逻辑
- 提高了代码可读性和性能
- 移除了不必要的 continue 语句
- 保持了原有的类型匹配功能不变
2026-03-28 19:40:02 +08:00
GeWuYou
d72d4ab0bd refactor(GFramework.SourceGenerators): 优化ContextGetGenerator中的集合类型遍历逻辑
- 重构了EnumerateCollectionTypeCandidates方法的调用方式
- 使用模式匹配简化了类型参数的提取逻辑
- 移除了不必要的SelectMany操作提高代码可读性
- 添加了空值检查增强代码健壮性
- 在方法末尾添加了必要的换行符保持代码格式一致
2026-03-28 19:32:23 +08:00
GeWuYou
d1eafe2c9b fix(generator): 修复ContextGetGenerator中的服务绑定推断逻辑
- 移除了对引用类型的自动服务绑定推断,避免将非上下文服务字段误判为服务依赖
- 更新了GetAll特性的行为描述,明确Service和Services绑定不会自动推断
- 添加了显式GetService特性的测试用例验证正确的绑定行为
- 从测试代码中移除了未使用的GetService扩展方法声明
- 为BattlePanel测试类添加了IStrategy服务集合字段以完善测试覆盖
2026-03-28 19:30:24 +08:00
gewuyou
e692c721e9
Merge pull request #147 from GeWuYou/feat/context-aware-injection-generator
Feat/context aware injection generator
v0.0.209
2026-03-28 13:11:57 +08:00
GeWuYou
6e3954eb3e docs(GFramework.Core): 更新 ContextAwareServiceExtensions 文档注释
- 为 GetSystem 方法添加 InvalidOperationException 异常文档说明
- 为 GetModel 方法添加 InvalidOperationException 异常文档说明
- 为 GetUtility 方法添加 InvalidOperationException 异常文档说明
- 清理文件末尾多余空行
2026-03-28 13:06:01 +08:00
GeWuYou
b5ac8b2c34 refactor(core): 重构上下文感知服务扩展以改进组件获取逻辑
- 引入通用的 GetRequiredComponent 方法来统一服务、系统、模型和工具的获取逻辑
- 添加对架构上下文组件的空值检查和异常处理
- 实现更清晰的错误消息以指示未注册的组件类型
- 为所有组件类型(服务、系统、模型、工具)添加缺失的单元测试
- 测试验证当上下文返回空组件时抛出正确的 InvalidOperationException
- 改进代码可维护性并减少重复的获取组件逻辑
2026-03-28 13:03:56 +08:00