73 lines
2.0 KiB
C#
73 lines
2.0 KiB
C#
|
|
/****************************************************
|
|||
|
|
文件:EditorWindowLayout.cs
|
|||
|
|
作者:张铮
|
|||
|
|
邮箱:834207172@qq.com
|
|||
|
|
日期:2022/3/3 17:53:52
|
|||
|
|
功能:
|
|||
|
|
*****************************************************/
|
|||
|
|
using System;
|
|||
|
|
using System.Text;
|
|||
|
|
namespace Stary.Evo.Editor
|
|||
|
|
{
|
|||
|
|
public class ScriptBuilder
|
|||
|
|
{
|
|||
|
|
private readonly string NEW_LINE = Environment.NewLine;
|
|||
|
|
|
|||
|
|
public ScriptBuilder()
|
|||
|
|
{
|
|||
|
|
builder = new StringBuilder();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private StringBuilder builder;
|
|||
|
|
public int Indent { get; set; }
|
|||
|
|
|
|||
|
|
private int currentCharIndex;
|
|||
|
|
|
|||
|
|
public void Write(string val, bool noAutoIndent = false)
|
|||
|
|
{
|
|||
|
|
if (!noAutoIndent)
|
|||
|
|
val = GetIndents() + val;
|
|||
|
|
if (currentCharIndex == builder.Length)
|
|||
|
|
builder.Append(val);
|
|||
|
|
else
|
|||
|
|
builder.Insert(currentCharIndex, val);
|
|||
|
|
currentCharIndex += val.Length;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void WriteLine(string val, bool noAutoIndent = false)
|
|||
|
|
{
|
|||
|
|
Write(val + NEW_LINE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public int WriteCurlyBrackets(bool increaseIndent = false)
|
|||
|
|
{
|
|||
|
|
var openBracket = GetIndents() + "{" + NEW_LINE;
|
|||
|
|
var closeBracket = GetIndents() + "}" + NEW_LINE;
|
|||
|
|
Write(openBracket + closeBracket, true);
|
|||
|
|
currentCharIndex -= closeBracket.Length;
|
|||
|
|
if(increaseIndent)
|
|||
|
|
Indent++;
|
|||
|
|
return closeBracket.Length;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void GetOutOfCurlyBrackets(int lastCurlyBracketSize, bool decreaseIndent = false)
|
|||
|
|
{
|
|||
|
|
currentCharIndex += lastCurlyBracketSize;
|
|||
|
|
if (decreaseIndent)
|
|||
|
|
Indent--;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string GetIndents()
|
|||
|
|
{
|
|||
|
|
var str = "";
|
|||
|
|
for (var i = 0; i < Indent; i++)
|
|||
|
|
str += " ";
|
|||
|
|
return str;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override string ToString()
|
|||
|
|
{
|
|||
|
|
return builder.ToString();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|