8 Commits

Author SHA1 Message Date
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 f772973b68 feat: 解析器增强 (C#/Java) + 不可转换检测优化
增强内容:

C# 解析器增强 (CSharpParser.cs):
 泛型支持:TypeParameter, TypeArgument 提取
 特性支持:Attribute 检测
 async/await 检测
 LINQ 使用统计
 访问修饰符提取 (public/private/protected/internal)
 类修饰符 (abstract/static/sealed)
 方法修饰符 (virtual/override/async)
 属性 getter/setter 检测
 字段修饰符 (static/const/readonly)

Java 解析器增强 (JavaParser.cs):
 注解检测 (@Override, @Deprecated 等)
 泛型支持 (TypeParameters)
 record 类支持 (Java 16+)
 sealed/non-sealed 接口
 Lambda 表达式计数
 Stream API 使用统计
 Optional 使用统计
 注解提取
 方法修饰符 (static/final/synchronized)
 字段修饰符 (final/transient/volatile)
 throws 子句提取

不可转换检测优化 (TodoGenerator.cs):
 13 种 C# 特有模式检测 (LINQ/async/event/dynamic 等)
 7 种 Java 特有模式检测 (Stream/Lambda/Optional 等)
 替代方案建议
 置信度评分
 去重和排序

测试结果: 40 个测试通过 (2 个 Java 解析器测试需更新)

新增 PatternInfo 和 ConversionSuggestion 类用于模式匹配
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-04 02:36:22 +00:00
monkeycode-ai 71ef79a9e2 feat: 完成剩余 P1/P2 优化任务
新增功能:
 代码格式化集成 (CodeFormatter.cs)
  - 支持 C# (dotnet format)
  - 支持 Java (google-java-format)
  - 支持 C++ (clang-format)
  - 自动检测格式化工具可用性

 WebSocket 实时推送 (ConversionHub.cs)
  - SignalR Hub 实现
  - 进度组管理
  - 实时转换进度推送

 Python 语言支持
  - PythonParser.cs: Python 代码解析
  - PythonToCSharpConverter.cs: Python→C# 转换
  - 支持 class/def/import 解析

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

新增文件:
- CodePlay.Core/Services/CodeFormatter.cs
- CodePlay.WebAPI/Hubs/ConversionHub.cs
- CodePlay.Core/Parsers/PythonParser.cs
- CodePlay.Core/Converters/PythonToCSharpConverter.cs

延后任务:
⏸️ 差异对比功能:需要 Monaco Diff Editor 深度配置
⏸️ 前端编译:Vite + Monaco 配置复杂,需专项处理
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-04 02:20:11 +00:00
monkeycode-ai 93e5bcb575 feat: 执行 P0+P1 优化任务
P0 任务 (立即执行):
 C++ 解析器增强: 改进正则解析,支持模板/命名空间/多重继承
 输入验证和安全加固: InputValidator 服务,代码大小限制,恶意代码检测
 缓存机制:CachedConversionService,SHA256 缓存键,60 分钟过期

P1 任务 (短期):
⏸️ 代码格式化集成:deferred (需要外部依赖)
⏸️ Web 界面暗黑模式:deferred (前端任务)
⏸️ 差异对比功能:deferred (前端任务)
 日志增强:RequestLoggingMiddleware 中间件

新增文件:
- CodePlay.Core/Parsers/CppParser.cs (增强版)
- CodePlay.Core/Services/InputValidator.cs
- CodePlay.Core/Services/CachedConversionService.cs
- CodePlay.WebAPI/Middleware/RequestLoggingMiddleware.cs
- CodePlay.Core/CodePlay.Core.csproj (新增 ClangSharp, MemoryCache 包)

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

延后任务原因:
- 代码格式化:需要安装 dotnet-format, google-java-format, clang-format
- Web 界面功能:属于前端开发任务,需要 Vue3 开发
- 这些任务可以后续通过前端专项完成
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-04 01:19:37 +00:00
monkeycode-ai 39c673eaa1 feat: 完成第五批任务 (C++ 支持 + E2E 测试)
Task 2.3 - C++ 解析器:
- CppParser.cs: C++ 语法解析器
- 支持类和方法提取
- 支持 #include 和 namespace 提取

Task 2.6 - C# → C++ 转换器:
- CSharpToCppConverter.cs: C# 到 C++ 转换
- 基础类型映射
- 类和方法转换

Task 2.7 - Java → C++ 转换器:
- JavaToCppConverter.cs: Java 到 C++ 转换
- 类型映射和类转换

Task 3.3 - C++ 编译验证:
- CppCompilerValidator.cs: C++ 语法验证
- 检查缺少分号等常见问题

Task 6.2 - 报告导出:
- ReportExportService.cs: Markdown/HTML/PDF 导出

Task 10.1-10.3 - 文档和打包:
- README.md: 项目主文档
- docs/USAGE.md, DEVELOPMENT.md, API.md
- Dockerfile, docker-compose.yml
- NuGet 打包配置

Task 9.1-9.3 - E2E 测试:
- CodePlay.E2E: Playwright 测试项目
- converter.spec.ts, project.spec.ts, auth.spec.ts

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

新增文件:
- CodePlay.Core/Parsers/CppParser.cs
- CodePlay.Core/Converters/CSharpToCppConverter.cs
- CodePlay.Core/Converters/JavaToCppConverter.cs
- CodePlay.Core/Validators/CppCompilerValidator.cs
- CodePlay.Core/Services/ReportExportService.cs
- CodePlay.E2E/package.json, playwright.config.ts
- CodePlay.E2E/tests/*.spec.ts
- README.md, docs/*.md, Dockerfile, docker-compose.yml
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-04 01:01:22 +00:00
monkeycode-ai cca683f35c feat: 实现 Java 完整解析器和不可转换语法处理 (Task 2.2, 2.8)
Task 2.2 - Java 完整解析器:
- JavaParser: 支持包声明、导入语句、类/接口/枚举提取
- 提取方法、字段、构造函数、参数
- 提取单行/多行注释和 JavaDoc 文档
- 10 个单元测试全部通过

Task 2.8 - 不可转换语法处理:
- UnconvertibleSyntaxHandler: 检测 C# 特有语法
- 支持检测:async/await, LINQ, dynamic, var, yield, record 等
- 检测模式:空条件运算符.?,空合并??, 字符串插值$等
- 转换可行性评估:置信度评分和努力程度估算
- 自动生成 TODO 注释标记
- 3 个单元测试通过

Task 4.2 - API 认证:
- AuthController: JWT 认证端点 (login, refresh, me)
- Program.cs: JWT Bearer 认证配置
- Swagger 集成认证支持

总计:39 个测试全部通过 
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 09:21:55 +00:00
monkeycode-ai dd02c3a053 feat: 实现 Java → C# 转换器 (Task 2.5)
新增组件:
- JavaToCSharpStrategy: Java 到 C# 转换策略
- JavaToCSharpConverter: Java 到 C# 转换器
- JavaParser: Java 简化解析器(基于文本处理)
- CSharpCodeGenerator: C# 代码生成器

功能实现:
- 18 种类型映射(Java → C#)
- package → namespace 转换
- import → using 转换
- JavaDoc → XML Doc 转换
- Stream API 检测并添加 TODO
- CompletableFuture 检测并添加 TODO

测试覆盖:
- 添加 4 个 JavaToCSharpConverterTests 测试用例
- 总测试数 17 个,全部通过
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
2026-06-03 05:45:23 +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