Skip to content

Commit 76485f4

Browse files
committed
Friendlier names
1 parent 1ee45f5 commit 76485f4

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

src/AutoCtor.Shared/Models/MemberModel.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,16 @@ EquatableList<Location> Locations
1616
{
1717
public static MemberModel Create(IFieldSymbol field)
1818
{
19-
var friendlyName = field.Name.Length > 1 && field.Name[0] == '_'
20-
? field.Name.Substring(1).EscapeKeywordIdentifier()
21-
: field.Name.EscapeKeywordIdentifier();
19+
var checkLength = field.Name.Length - 1;
20+
var i = 0;
21+
while (checkLength > i && !char.IsLetter(field.Name[i]))
22+
i++;
23+
if (i > 0 && !char.IsLetter(field.Name[i]))
24+
i--;
25+
var friendlyName = char.IsUpper(field.Name[i])
26+
? char.ToLower(field.Name[i]) + field.Name.Substring(i + 1)
27+
: field.Name.Substring(i);
28+
friendlyName = friendlyName.EscapeKeywordIdentifier();
2229

2330
return new MemberModel(
2431
Type: new(field.Type),

src/AutoCtor.Tests/Examples/FriendlyParameterNamesTest.ExamplesGeneratedCode#FriendlyParameterNamesTest.g.verified.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,20 @@ partial class FriendlyParameterNamesTest
99
{
1010
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute]
1111
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
12-
public FriendlyParameterNamesTest(int underscorePrefix, int camelCase, int PascalCase)
12+
public FriendlyParameterNamesTest(
13+
int _,
14+
int _2,
15+
int underscorePrefix,
16+
int doubleUnderscorePrefix,
17+
int camelCase,
18+
int pascalCase
19+
)
1320
{
21+
this._ = _;
22+
this._2 = _2;
1423
this._underscorePrefix = underscorePrefix;
24+
this.__doubleUnderscorePrefix = doubleUnderscorePrefix;
1525
this.camelCase = camelCase;
16-
this.PascalCase = PascalCase;
26+
this.PascalCase = pascalCase;
1727
}
1828
}

src/AutoCtor.Tests/Examples/FriendlyParameterNamesTest.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
[AutoConstruct]
44
public partial class FriendlyParameterNamesTest
55
{
6+
private readonly int _;
7+
private readonly int _2;
68
private readonly int _underscorePrefix;
9+
private readonly int __doubleUnderscorePrefix;
710
private readonly int camelCase;
811
private readonly int PascalCase;
912
}

0 commit comments

Comments
 (0)