hybridclr_unity/Editor/Template/TemplateUtil.cs

39 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybridCLR.Editor.Template
{
public static class TemplateUtil
{
public static string ReplaceRegion(string resultText, string region, string replaceContent)
{
int startIndex = resultText.IndexOf("//!!!{{" + region);
if (startIndex == -1)
{
throw new Exception($"region:{region} start not find");
}
int endIndex = resultText.IndexOf("//!!!}}" + region);
if (endIndex == -1)
{
throw new Exception($"region:{region} end not find");
}
int replaceStart = resultText.IndexOf('\n', startIndex);
int replaceEnd = resultText.LastIndexOf('\n', endIndex);
if (replaceStart == -1 || replaceEnd == -1)
{
throw new Exception($"region:{region} not find");
}
if (resultText.Substring(replaceStart, replaceEnd - replaceStart) == replaceContent)
{
return resultText;
}
resultText = resultText.Substring(0, replaceStart) + "\n" + replaceContent + "\n" + resultText.Substring(replaceEnd);
return resultText;
}
}
}