src/JetBrains.Space.Common/Json.Serialization/Internal/CSharpIdentifier.cs (19 lines of code) (raw):
using JetBrains.Space.Common.Utilities;
namespace JetBrains.Space.Common.Json.Serialization.Internal;
internal static class CSharpIdentifier
{
private static readonly char[] IdentifierSeparators = { ' ', '-', '_', '.', '/' };
public static string ForClassOrNamespace(string subject) =>
string.Join("",
subject
.Replace(" ", "_")
.Replace(":", "_")
.Replace("{", "For-")
.Replace("}", string.Empty)
.Replace("[", string.Empty)
.Replace("]", string.Empty)
.Replace("?", string.Empty)
.Replace("'s", string.Empty)
.Split(IdentifierSeparators)
.Select(it => it.ToUppercaseFirst()));
}