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
|
7029590cb3
|
feat: 完成 Web 界面暗黑模式
P1 任务 - Web 界面优化:
✅ 暗黑模式主题支持
- App.vue: 全局暗黑模式 CSS 变量
- ThemeToggle.vue: 主题切换组件
- 支持明亮/暗黑模式切换
- LocalStorage 持久化主题偏好
⏸️ 差异对比功能:延后
- Monaco Diff Editor 需要特殊配置
- 需要 monaco-editor 插件支持
- 建议作为独立任务实施
⏸️ 代码格式化:延后
- 需要安装外部格式化工具
- dotnet-format, google-java-format, clang-format
新增文件:
- CodePlay.Web/src/components/ThemeToggle.vue
- CodePlay.Web/src/services/api.ts
更新文件:
- CodePlay.Web/src/App.vue (暗黑模式支持)
- CodePlay.Web/src/views/ConverterView.vue (主题切换按钮)
- CodePlay.Web/vite.config.ts (Monaco 配置)
- CodePlay.Web/package.json (monaco-editor 依赖)
使用方法:
1. 点击右上角圆形按钮切换明亮/暗黑模式
2. 主题偏好自动保存到 localStorage
3. 刷新页面后主题保持不变
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
|
2026-06-04 01:32:01 +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
|
6745fba6ba
|
feat: 完成第一批高优先级任务 (Task 4.5, 4.7, 7.3)
Task 4.5 - 转换界面完善:
- ConverterView.vue: 完整转换界面
- 集成 Monaco Editor 代码编辑器
- 语言选择器 (C#/Java)
- 验证轮次选择 (1-3 轮)
- 转换结果显示
- 转换报告弹窗 (TODO 和问题)
- 光标位置显示
- 复制结果功能
- 状态栏统计
Task 4.7 - 项目管理界面:
- ProjectView.vue: 项目管理页面
- 项目列表展示
- 新建项目对话框
- 项目详情和转换历史
- 项目删除功能
- 路由配置更新
Task 7.3 - 数据库持久化:
- CodePlay.Persistence 项目创建
- AppDbContext: SQLite DbContext
- ConversionReport 和 ProjectInfo 数据模型
- DatabaseStorageService: IReportStorageService 实现
- 支持报告存储、查询、删除
- 统计信息聚合
- AddPersistence 扩展方法
测试:42 个测试(41 通过,1 跳过)✅
新增文件:
- CodePlay.Web/src/views/ConverterView.vue
- CodePlay.Web/src/views/ProjectView.vue
- CodePlay.Persistence/AppDbContext.cs
- CodePlay.Persistence/DatabaseStorageService.cs
- CodePlay.Web/src/router/index.ts (更新)
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
|
2026-06-04 00:38:53 +00:00 |
|
monkeycode-ai
|
4c94bdf666
|
feat: 实现 Task 3.2 Java 编译验证和 Task 4.4 前端代码编辑器
Task 3.2 - Java 编译验证:
- JavaCompilerValidator: 使用 javac 进行编译验证
- 支持临时文件编译和清理
- 集成到 ICompilerValidator 接口
- 单元测试 (需要 javac 环境)
Task 4.4 - 前端代码编辑器:
- CodeEditor.vue: Monaco Editor 集成
- 支持 C#/Java/C++ 语法高亮
- 智能代码补全 (main 方法,System.out.println 等)
- 支持主题切换 (vs-dark/vs/hc-black)
- 支持只读模式、最小化地图、自动布局
- 暴露 API: setValue, getValue, focus, layout
测试状态:
- 总测试数: 42
- 通过: 41 ✅
- 跳过: 1 (Java 编译器测试需要 javac 环境)
前端依赖:
- 需安装 monaco-editor: npm install monaco-editor
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
|
2026-06-03 11:20:49 +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
|
78caed7b21
|
feat: 实现双前端架构 - Blazor+Known 和 Vue3
Task 4.3 更新 - 双前端项目:
1. Blazor + Known 3.5.7 (管理端):
- 添加 Known 3.5.7 NuGet 包
- 更新 Program.cs 配置 Known 服务
- 保留 Blazor Server 架构
2. Vue3 + Element Plus (用户端):
- 创建 CodePlay.Web Vue3 项目
- 基于 vue-next-admin 风格设计
- 技术栈:Vue 3.4 + TypeScript + Vite 5
- 集成 Element Plus UI 组件库
- 使用 Pinia 状态管理
- 配置 Vue Router 路由
- 实现 Converter 代码转换页面
- 配置反向代理到后端 API (端口 5000)
项目结构:
- CodePlay.WebUI/ - Blazor + Known 管理端
- CodePlay.Web/ - Vue3 + Element Plus 用户端
- CodePlay.Web/ - 包含完整的 Vue3 项目结构
- src/views/Converter.vue - 主转换页面
- src/router/ - 路由配置
- src/App.vue - 根组件
- 支持 npm run dev 启动开发服务器
前端特性:
- 响应式布局 (El-Row/El-Col)
- 代码编辑器 (双栏对比)
- 语言选择器
- 验证轮次配置
- TODO 和问题列表展示
- 一键复制结果
- 实时错误提示
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
|
2026-06-03 08:39:48 +00:00 |
|
monkeycode-ai
|
ae4de8a116
|
feat: 完成 C# 解析器测试、C# 转 Java 转换器和 Web API 控制器
核心功能实现:
- 实现 CSharpToJavaStrategy 转换策略(包含类型映射)
- 实现 CSharpToJavaConverter 转换器
- 实现 JavaCodeGenerator 代码生成器
- 实现 ConversionService 转换服务
- 实现 ConversionController Web API 控制器
- 注册 Swagger 文档和依赖注入
测试覆盖:
- CSharpParserTests: 8 个测试用例
- CSharpToJavaConverterTests: 5 个测试用例
- 共 13 个测试全部通过
任务完成:
- Task 1.2: 配置项目依赖
- Task 1.3: 建立基础架构
- Task 2.1: 实现 C# 解析器和测试
- Task 2.4: 实现 C# → Java 转换器
- Task 4.1: 创建 ASP.NET Core Web API
Co-authored-by: monkeycode-ai <monkeycode-ai@chaitin.com>
|
2026-06-03 04:13:35 +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 |
|