Editor: Show pretty script field names

This commit is contained in:
Simon Lübeß
2024-02-17 22:53:58 +01:00
parent 59aaec572b
commit 3c0302b06c
2 changed files with 76 additions and 1 deletions
+73
View File
@@ -0,0 +1,73 @@
using System.Text;
namespace GlitchyEngine.Extensions;
public static class StringExtension
{
/// <summary>
/// Converts a variable name to a pretty name as good as reasonably possible.
/// </summary>
/// <param name="uglyName">The name of a variable to prettify.</param>
/// <returns>The pretty string.</returns>
public static string ToPrettyName(this string uglyName)
{
StringBuilder sb = new StringBuilder(uglyName.Length);
bool wasUpper = false;
bool inWord = false;
bool inNumber = false;
foreach (char c in uglyName)
{
if (char.IsLetter(c))
{
if (inNumber)
{
sb.Append(' ');
inNumber = false;
}
bool newWord = !inWord;
if (char.IsUpper(c) && !wasUpper)
{
newWord = true;
wasUpper = true;
if (inWord)
{
sb.Append(' ');
}
}
else if (char.IsLower(c))
{
wasUpper = false;
}
sb.Append(newWord ? char.ToUpper(c) : char.ToLower(c));
inWord = true;
}
else if (char.IsDigit(c))
{
if (inWord)
{
sb.Append(' ');
inWord = false;
inNumber = true;
}
sb.Append(c);
}
else if (inWord || inNumber)
{
sb.Append(' ');
inWord = false;
inNumber = false;
wasUpper = false;
}
}
return sb.ToString();
}
}