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:
@@ -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; }
|
||||
}
|
||||
Reference in New Issue
Block a user