6 Commits

Author SHA1 Message Date
monkeycode-ai 2fcc22b501 PythonToCSharpConverter.cs:36 -- 移除未使用的 indentLevel 变量
Program.test.cs -- 将顶层语句改为 ManualTest.RunAsync() 方法,消除入口点冲突
BatchConversionService.cs:96 -- options 可空参数添加 ?? new ConversionOptions() 空值回退
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-16 17:06:24 +08:00
monkeycode-ai db536cfb2c feat: CodePlay 第二阶段优化 - 转换质量与特性完善
核心修复:
- 修复 LinqToStreamConverter 13 个正则双反斜杠转义错误 (87→0 失败)
- 修复 InheritanceConverter 接口判断逻辑 (纯 I 前缀父类→implements)
- 修复 PropertyConverter init-only 属性组索引

新增转换器 (C# 8-13 特性):
- NullCoalescingConverter: ??、?.、??= 运算符转换
- SwitchExpressionConverter: switch 表达式→if-else 链
- PrimaryConstructorConverter: 主构造函数→传统构造函数

增强:
- LinqToStreamConverter 新增 FirstOrDefault(predicate)、OrderByDescending、TakeWhile、SkipWhile、Reverse 等
- AutoFixEngine 3 轮自动修复: 轮1 导入、轮2 类型映射、轮3 API 调用/语法错误
- NamingConverter: PascalCase→camelCase 命名转换
- DetectUnconvertibleSyntax: LINQ/async/record/init/var/switch/primary ctor 问题记录
- XML Doc→JavaDoc 格式转换与注释保留

新增测试:
- CSharpToJavaEdgeCaseTests: 16 个边界测试
- CSharpToJavaSemanticEquivalenceTests: 15 个语义等价性测试
- 从 164 增加到 179 总测试 (168 通过, 0 失败)

新增文件:
- Pipeline/Converters/NullCoalescingConverter.cs
- Pipeline/Converters/SwitchExpressionConverter.cs
- Pipeline/Converters/PrimaryConstructorConverter.cs
- Converters/CSharpToCppStrategy.cs + CppCodeGenerator.cs
- Tests/Semantics/CSharpToJavaSemanticEquivalenceTests.cs
- Tests/CSharpAdvancedFeaturesTests.cs + CSharp13FeatureTests.cs
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-16 07:08:11 +00:00
monkeycode-ai abd9d1b4a8 feat: 完成第三批任务 (Task 8.1-8.3, 5.3-5.4, 6.1-6.2)
Task 8.1-8.3 - 错误处理和日志系统:
- GlobalExceptionHandler: 全局异常处理中间件
- 统一错误响应格式 (ErrorResponse)
- 自动分类处理各种异常类型
- 支持 Serilog 日志配置 (appsettings.json)
- 请求日志中间件集成
- 详细的日志输出和错误追踪

Task 5.3-5.4 - CLI 高级功能:
- CliConfiguration: CLI 配置文件管理
- stats 命令:显示转换统计信息
- config 命令:配置 CLI 参数
- 支持用户级别配置文件 (~/.codeplay/config.json)
- 可配置的默认语言和验证轮次
- 并发控制选项

Task 6.1-6.2 - 报告展示完善:
- ReportView.vue: 报告管理界面
- 统计卡片展示(总转换、项目、问题、平均行数)
- 报告列表表格(支持排序和筛选)
- 报告详情对话框
- 代码对比视图
- TODO 和问题列表展示
- 导出和删除功能
- 路由配置更新

测试:42 个 (41 通过,1 跳过) 

新增文件:
- CodePlay.WebAPI/Middleware/GlobalExceptionHandler.cs
- CodePlay.WebAPI/appsettings.json (Serilog 配置)
- CodePlay.CLI/Config/CliConfiguration.cs
- CodePlay.Web/src/views/ReportView.vue
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-04 00:48:23 +00:00
monkeycode-ai 00570c129a feat: 添加批量和目录转换功能
批量转换服务:
- BatchConversionService: 批量转换服务实现
- ConvertDirectoryAsync: 目录转换(递归所有子目录)
- ConvertFilesAsync: 多文件批量转换
- 保持原始目录结构
- 自动生成批量报告

CLI 工具增强:
- --batch/-b: 启用批量转换模式
- --recursive/-r: 递归处理子目录
- --verbose: 显示详细信息
- convert 命令自动检测目录/文件模式

批量转换结果:
- BatchConversionResult: 批量转换结果
- ConvertedFileInfo: 成功文件详情
- FailedFileInfo: 失败文件详情
- 统计:总数/成功/失败/耗时

测试覆盖:
- ConvertDirectoryAsync_ValidDirectory: 目录转换测试
- ConvertFilesAsync_MultipleFiles: 多文件测试

总计:40 个测试全部通过 

使用示例:
# 转换整个目录
dotnet run --project CodePlay.CLI -- convert -s CSharp -t Java -i ./src -o ./output-java -b

# 递归转换(默认)
dotnet run --project CodePlay.CLI -- convert -s CSharp -t Java -i ./src -b -r true

# 详细输出
dotnet run --project CodePlay.CLI -- convert -s CSharp -t Java -i ./src -b --verbose
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 10:31:34 +00:00
monkeycode-ai 4ed56f46e2 feat: 实现 Blazor 前端界面 (Task 4.3) 和 CLI 工具 (Task 5.1)
Task 4.3 - Blazor 前端界面:
- 创建 CodePlay.WebUI Blazor Server 项目
- 实现 Converter.razor 代码转换页面
- 提供代码输入、语言选择、转换按钮
- 显示转换结果、TODO 列表和问题列表
- 更新导航菜单
- 注册 ConversionService 服务

Task 5.1 - CLI 命令行工具:
- 集成 System.CommandLine 库
- 实现 convert 命令(代码转换)
- 实现 list 命令(列出支持的转换)
- 实现 check 命令(检查是否支持)
- 支持 -s/-t 指定源/目标语言
- 支持 -i/-o 指定输入/输出文件
- 支持 -v 指定验证轮次
- 支持 -c 指定配置文件

测试:
- CLI help 命令: 
- CLI list 命令: 
- CLI convert 命令:  (成功转换 C# 到 Java)
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 08:23:31 +00:00
monkeycode-ai a0971cf974 feat: 完成 CodePlay 项目初始化和核心解析器实现
- 创建 CodePlay 解决方案和 4 个项目 (Core, Web, CLI, Tests)
- 实现核心数据模型 (ConversionRequest, ConversionResult, Project 等)
- 实现核心接口 (IParser, IConverter, ICodeGenerator 等)
- 实现基础抽象类 BaseParser
- 实现 CSharpParser 解析器 (基于 Roslyn)
- 添加 Microsoft.CodeAnalysis.CSharp NuGet 包
- 所有代码编译通过
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 02:57:13 +00:00