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>
This commit is contained in:
monkeycode-ai
2026-06-03 02:57:13 +00:00
parent d260763e7a
commit a0971cf974
21 changed files with 1553 additions and 16 deletions
+141
View File
@@ -0,0 +1,141 @@
using CodePlay.Core.Common;
namespace CodePlay.Core.Models;
/// <summary>
/// 项目模型
/// </summary>
public class Project
{
/// <summary>
/// 项目 ID
/// </summary>
public string Id { get; set; } = Guid.NewGuid().ToString("N");
/// <summary>
/// 项目名称
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 源语言
/// </summary>
public LanguageType SourceLanguage { get; set; }
/// <summary>
/// 目标语言
/// </summary>
public LanguageType TargetLanguage { get; set; }
/// <summary>
/// 项目状态
/// </summary>
public ProjectStatus Status { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
/// <summary>
/// 转换任务列表
/// </summary>
public List<ConversionTask> Tasks { get; set; } = new();
/// <summary>
/// 配置
/// </summary>
public ProjectConfiguration? Configuration { get; set; }
}
/// <summary>
/// 转换任务
/// </summary>
public class ConversionTask
{
/// <summary>
/// 任务 ID
/// </summary>
public string Id { get; set; } = Guid.NewGuid().ToString("N");
/// <summary>
/// 源文件路径
/// </summary>
public string SourceFilePath { get; set; } = string.Empty;
/// <summary>
/// 目标文件路径
/// </summary>
public string TargetFilePath { get; set; } = string.Empty;
/// <summary>
/// 源代码
/// </summary>
public string? SourceCode { get; set; }
/// <summary>
/// 转换后的代码
/// </summary>
public string? TransformedCode { get; set; }
/// <summary>
/// 转换状态
/// </summary>
public ConversionStatus Status { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// <summary>
/// 完成时间
/// </summary>
public DateTime? CompletedAt { get; set; }
/// <summary>
/// 转换结果
/// </summary>
public ConversionResult? Result { get; set; }
}
/// <summary>
/// 项目配置
/// </summary>
public class ProjectConfiguration
{
/// <summary>
/// 验证轮次
/// </summary>
public int ValidationRounds { get; set; } = 2;
/// <summary>
/// 自动修复启用
/// </summary>
public bool EnableAutoFix { get; set; } = true;
/// <summary>
/// 保留注释
/// </summary>
public bool KeepComments { get; set; } = true;
/// <summary>
/// 保留文档字符串
/// </summary>
public bool KeepDocStrings { get; set; } = true;
/// <summary>
/// 缩进大小
/// </summary>
public int IndentSize { get; set; } = 4;
/// <summary>
/// 输出目录
/// </summary>
public string? OutputDirectory { get; set; }
}