protected string CleanEnumFieldName()

in utils/SkiaSharpGenerator/BaseTool.cs [300:331]


		protected string CleanEnumFieldName(string fieldName, string cppEnumName)
		{
			if (cppEnumName.EndsWith("_t"))
				cppEnumName = cppEnumName[..^2];

			fieldName = RemovePrefixSuffix(fieldName, cppEnumName);

			// special case for "flags" name and "flag" member
			if (cppEnumName.EndsWith("_flags"))
				fieldName = RemovePrefixSuffix(fieldName, cppEnumName[..^1]);

			// special case for bad skia enum fields
			var lower = fieldName.ToLowerInvariant();
			var indexOfSplitter = lower.IndexOf("_sk_");
			if (indexOfSplitter == -1)
				indexOfSplitter = lower.IndexOf("_gr_");
			if (indexOfSplitter != -1)
				fieldName = fieldName[0..indexOfSplitter];

			return CleanName(fieldName);

			static string RemovePrefixSuffix(string member, string type)
			{
				if (member.ToLowerInvariant().EndsWith("_" + type.ToLowerInvariant()))
					member = member[..^(type.Length + 1)];

				if (member.ToLowerInvariant().StartsWith(type.ToLowerInvariant() + "_"))
					member = member[(type.Length + 1)..];

				return member;
			}
		}