67 lines
1.4 KiB
C#
67 lines
1.4 KiB
C#
using UnityEngine;
|
|
|
|
namespace LunaWolfStudiosEditor.ScriptableSheets.Tables
|
|
{
|
|
[System.Serializable]
|
|
public class Wrapper
|
|
{
|
|
[SerializeField]
|
|
private char m_Open;
|
|
public char Open { get => m_Open; set => m_Open = value; }
|
|
|
|
[SerializeField]
|
|
private char m_Close;
|
|
public char Close { get => m_Close; set => m_Close = value; }
|
|
|
|
public Wrapper(char openAndClose)
|
|
{
|
|
m_Open = openAndClose;
|
|
m_Close = openAndClose;
|
|
}
|
|
|
|
public Wrapper(char open, char close)
|
|
{
|
|
m_Open = open;
|
|
m_Close = close;
|
|
}
|
|
|
|
public string Wrap(string value)
|
|
{
|
|
return $"{m_Open}{value}{m_Close}";
|
|
}
|
|
|
|
public string WrapInverse(string value)
|
|
{
|
|
return $"{m_Close}{value}{m_Open}";
|
|
}
|
|
|
|
public string EscapeContent(string content, string escapedOpen, string escapedClose)
|
|
{
|
|
if (string.IsNullOrEmpty(content))
|
|
{
|
|
return content;
|
|
}
|
|
var escapedContent = content.Replace(m_Open.ToString(), escapedOpen);
|
|
if (m_Open != m_Close)
|
|
{
|
|
escapedContent = escapedContent.Replace(m_Close.ToString(), escapedClose);
|
|
}
|
|
return escapedContent;
|
|
}
|
|
|
|
public string UnescapeContent(string content, string escapedOpen, string escapedClose)
|
|
{
|
|
if (string.IsNullOrEmpty(content))
|
|
{
|
|
return content;
|
|
}
|
|
var unescapedContent = content.Replace(escapedOpen, m_Open.ToString());
|
|
if (escapedOpen != escapedClose)
|
|
{
|
|
unescapedContent = unescapedContent.Replace(escapedClose, m_Close.ToString());
|
|
}
|
|
return unescapedContent;
|
|
}
|
|
}
|
|
}
|