Skip to content

Commit 75c4015

Browse files
committed
Fix reorder parameters preview
This also introduces an extension to the Accessibility enum to provide a codestring. We're replacing the StringBuilder code with a more easily followed interpolated string as well
1 parent 63e529a commit 75c4015

File tree

2 files changed

+27
-40
lines changed

2 files changed

+27
-40
lines changed

Rubberduck.Core/UI/Refactorings/ReorderParameters/ReorderParametersViewModel.cs

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -93,70 +93,48 @@ public string SignaturePreview
9393

9494
private string GetSignature(SubroutineDeclaration member)
9595
{
96-
var signature = new StringBuilder();
97-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
98-
signature.Append($" Sub {member.IdentifierName}(");
99-
100-
var selectedParams = Parameters.Select(s => s.Name);
101-
signature.Append($", {selectedParams})");
102-
return signature.ToString();
96+
var accessibility = member.Accessibility.CodeString();
97+
var parameterList = string.Join(", ", Parameters.Select(p => p.Name));
98+
return $"{accessibility} Sub {member.IdentifierName}({parameterList})";
10399
}
104100

105101
private string GetSignature(FunctionDeclaration member)
106102
{
107-
var signature = new StringBuilder();
108-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
109-
signature.Append($" Function {member.IdentifierName}(");
110-
111-
var selectedParams = Parameters.Select(s => s.Name);
112-
signature.Append($", {selectedParams}) As {member.AsTypeName}");
113-
return signature.ToString();
103+
var accessibility = member.Accessibility.CodeString();
104+
var parameterList = string.Join(", ", Parameters.Select(p => p.Name));
105+
return $"{accessibility} Function {member.IdentifierName}({parameterList}) As {member.AsTypeName}";
114106
}
115107

116108
private string GetSignature(EventDeclaration member)
117109
{
118-
var signature = new StringBuilder();
119-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
120-
signature.Append($" Event {member.IdentifierName}(");
121-
122-
var selectedParams = Parameters.Select(s => s.Name);
123-
signature.Append($", {selectedParams})");
124-
return signature.ToString();
110+
var access = member.Accessibility.CodeString();
111+
var parameters = string.Join(", ", Parameters.Select(p => p.Name));
112+
return $"{access} Event {member.IdentifierName}({parameters})";
125113
}
126114

127115
private string GetSignature(PropertyGetDeclaration member)
128116
{
129-
var signature = new StringBuilder();
130-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
131-
signature.Append($" Property Get {member.IdentifierName}(");
132-
133-
var selectedParams = Parameters.Select(s => s.Name);
134-
signature.Append($", {selectedParams}) As {member.AsTypeName}");
135-
return signature.ToString();
117+
var access = member.Accessibility.CodeString();
118+
var parameters = string.Join(", ", Parameters.Select(p => p.Name));
119+
return $"{access} Property Get {member.IdentifierName}({parameters}) As {member.AsTypeName}";
136120
}
137121

138122
private string GetSignature(PropertyLetDeclaration member)
139123
{
140-
var signature = new StringBuilder();
141-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
142-
signature.Append($" Property Let {member.IdentifierName}(");
143-
124+
var access = member.Accessibility.CodeString();
144125
var selectedParams = Parameters.Select(s => s.Name).ToList();
145126
selectedParams.Add(new Parameter(member.Parameters.Last(), -1).Name);
146-
signature.Append($", {selectedParams})");
147-
return signature.ToString();
127+
var parameters = string.Join(", ", selectedParams);
128+
return $"{access} Property Let {member.IdentifierName}({parameters})";
148129
}
149130

150131
private string GetSignature(PropertySetDeclaration member)
151132
{
152-
var signature = new StringBuilder();
153-
signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString());
154-
signature.Append($" Property Set {member.IdentifierName}(");
155-
133+
var access = member.Accessibility.CodeString();
156134
var selectedParams = Parameters.Select(s => s.Name).ToList();
157135
selectedParams.Add(new Parameter(member.Parameters.Last(), -1).Name);
158-
signature.Append($", {selectedParams})");
159-
return signature.ToString();
136+
var parameters = string.Join(", ", selectedParams);
137+
return $"{access} Property Set {member.IdentifierName}({parameters})";
160138
}
161139

162140
public void UpdatePreview() => OnPropertyChanged(nameof(SignaturePreview));

Rubberduck.Parsing/Symbols/Accessibility.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,13 @@ public enum Accessibility
99
Global = 5,
1010
Static = 6
1111
}
12+
13+
public static class AccessibilityExtensions
14+
{
15+
public static string CodeString(this Accessibility access)
16+
{
17+
return access == Accessibility.Implicit ? string.Empty : access.ToString();
18+
}
19+
}
20+
1221
}

0 commit comments

Comments
 (0)