using System.Text.RegularExpressions; using CodePlay.Core.Interfaces; using CodePlay.Core.Models; namespace CodePlay.Core.Pipeline.Converters; /// /// Async/Task 转换器 - Task→CompletableFuture, async→移除 /// public class AsyncConverter : ILineConverter { public int Priority => 90; public string Convert(string line, ConversionContext context) { var result = line; result = Regex.Replace(result, @"\bTask<([^>]+)>", "CompletableFuture<$1>"); result = Regex.Replace(result, @"\bTask\b", "CompletableFuture"); result = Regex.Replace(result, @"\basync\s+", ""); result = Regex.Replace(result, @"\bawait\s+", ""); result = Regex.Replace(result, @"Task\.FromResult\(", "CompletableFuture.completedFuture("); result = Regex.Replace(result, @"Task\.Run\(", "CompletableFuture.supplyAsync("); return result; } }