Browse Source

More test cases and comments

pull/1884/head
Salvage 2 years ago
parent
commit
92a5f746fb
No known key found for this signature in database
GPG Key ID: 1362C7A680BA7451
  1. 5
      src/Generator.Tests/Passes/TestPasses.cs
  2. 8
      src/Generator/Passes/RenamePass.cs

5
src/Generator.Tests/Passes/TestPasses.cs

@ -121,7 +121,7 @@ namespace CppSharp.Generator.Tests.Passes @@ -121,7 +121,7 @@ namespace CppSharp.Generator.Tests.Passes
Assert.That(@enum.Name, Is.EqualTo("ScreamingEnum"));
Assert.That(enumItem.Name, Is.EqualTo("SnakeValue"));
AssertConversion("test_123", "Test123");
AssertConversion("test_123_123", "Test123_123");
AssertConversion("SCREAMING", "Screaming");
AssertConversion("Not_Screaming", "NotScreaming");
AssertConversion("Still_Not___Screaming", "StillNot___Screaming");
@ -131,11 +131,14 @@ namespace CppSharp.Generator.Tests.Passes @@ -131,11 +131,14 @@ namespace CppSharp.Generator.Tests.Passes
AssertConversion("_d_", "_d_");
AssertConversion("MyCool2d_string", "MyCool2dString");
AssertConversion("MyCool2_d_String", "MyCool2D_String");
AssertConversion("MyCoolD_d_String", "MyCoolD_dString");
AssertConversion("MyC_de_cool", "MyC_deCool");
AssertConversion("m_d_d_d", "M_dD_d");
AssertConversion("m_d_d_d", "mD_dD", RenameCasePattern.LowerCamelCase);
AssertConversion("__m_d_d_d", "__mD_dD");
AssertConversion("mProperty", "MProperty");
AssertConversion("mProperty", "mProperty", RenameCasePattern.LowerCamelCase);
AssertConversion("m_property", "mProperty", RenameCasePattern.LowerCamelCase);
void AssertConversion(string input, string output, RenameCasePattern pattern = RenameCasePattern.UpperCamelCase)
=> Assert.That(CaseRenamePass.ConvertCaseString(new Class { Name = input }, pattern),

8
src/Generator/Passes/RenamePass.cs

@ -410,8 +410,12 @@ namespace CppSharp.Passes @@ -410,8 +410,12 @@ namespace CppSharp.Passes
char? next = i < decl.Name.Length - 1 ? decl.Name[i + 1] : null;
if (c == '_'
&& next != null && i - 1 != startIndex
&& next != null
// Prevent two capitals in a row caused by later uppercasing of first char.
&& (i - 1 != startIndex || pattern == RenameCasePattern.LowerCamelCase)
// Ignore multiple underscores in a row.
&& prev != '_' && next != '_'
// Don't join digits.
&& (IsLetter(prev) || IsLetter(next))
&& !justHadSeparator)
{
@ -423,7 +427,7 @@ namespace CppSharp.Passes @@ -423,7 +427,7 @@ namespace CppSharp.Passes
// CamelCase separator.
justHadSeparator = IsLower(prev) && IsUpper(c);
sb.Append(!IsUpper(prev) ? c : char.ToLowerInvariant(c));
sb.Append(IsUpper(prev) ? char.ToLowerInvariant(c) : c);
// Nullable helper functions.
bool IsLetter(char? ch) => IsUpper(ch) || IsLower(ch);

Loading…
Cancel
Save