Skip to content

Commit 1655c1c

Browse files
Fix the reorder parameters preview generation (#4927)
Fix the reorder parameters preview generation Co-authored-by: Mathieu Guindon <retailcoder@gmail.com>
2 parents 4d5420b + 765f931 commit 1655c1c

File tree

3 files changed

+43
-64
lines changed

3 files changed

+43
-64
lines changed

Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -90,58 +90,46 @@ public string SignaturePreview
9090

9191
private string GetSignature(SubroutineDeclaration member)
9292
{
93-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
94-
signature += " Sub " + member.IdentifierName + "(";
95-
93+
var access = member.Accessibility.TokenString();
9694
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name);
97-
return signature + string.Join(", ", selectedParams) + ")";
95+
return $"{access} Sub {member.IdentifierName}({string.Join(", ", selectedParams)})";
9896
}
9997

10098
private string GetSignature(FunctionDeclaration member)
10199
{
102-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
103-
signature += " Function " + member.IdentifierName + "(";
104-
100+
var access = member.Accessibility.TokenString();
105101
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name);
106-
return signature + string.Join(", ", selectedParams) + ") As " + member.AsTypeName;
102+
return $"{access} Function {member.IdentifierName}({string.Join(", ", selectedParams)}) As {member.AsTypeName}";
107103
}
108104

109105
private string GetSignature(EventDeclaration member)
110106
{
111-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
112-
signature += " Event " + member.IdentifierName + "(";
113-
107+
var access = member.Accessibility.TokenString();
114108
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name);
115-
return signature + string.Join(", ", selectedParams) + ")";
109+
return $"{access} Event {member.IdentifierName}({string.Join(", ", selectedParams)})";
116110
}
117111

118112
private string GetSignature(PropertyGetDeclaration member)
119113
{
120-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
121-
signature += " Property Get " + member.IdentifierName + "(";
122-
114+
var access = member.Accessibility.TokenString();
123115
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name);
124-
return signature + string.Join(", ", selectedParams) + ") As " + member.AsTypeName;
116+
return $"{access} Property Get {member.IdentifierName}({string.Join(", ", selectedParams)}) As {member.AsTypeName}";
125117
}
126118

127119
private string GetSignature(PropertyLetDeclaration member)
128120
{
129-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
130-
signature += " Property Let " + member.IdentifierName + "(";
131-
121+
var access = member.Accessibility.TokenString();
132122
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name).ToList();
133123
selectedParams.Add(new Parameter(member.Parameters.Last()).Name);
134-
return signature + string.Join(", ", selectedParams) + ")";
124+
return $"{access} Property Let {member.IdentifierName}({string.Join(", ", selectedParams)})";
135125
}
136126

137127
private string GetSignature(PropertySetDeclaration member)
138128
{
139-
var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString();
140-
signature += " Property Set " + member.IdentifierName + "(";
141-
129+
var access = member.Accessibility.TokenString();
142130
var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name).ToList();
143131
selectedParams.Add(new Parameter(member.Parameters.Last()).Name);
144-
return signature + string.Join(", ", selectedParams) + ")";
132+
return $"{access} Property Set {member.IdentifierName}({string.Join(", ", selectedParams)})";
145133
}
146134

147135
private void RemoveParameter(ParameterViewModel parameter)

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.TokenString();
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.TokenString();
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.TokenString();
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.TokenString();
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.TokenString();
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.TokenString();
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: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,17 @@ public enum Accessibility
99
Global = 5,
1010
Static = 6
1111
}
12+
13+
public static class AccessibilityExtensions
14+
{
15+
/// <summary>
16+
/// Gets the string/token representation of an accessibility specifier.
17+
/// </summary>
18+
/// <remarks>Implicit accessibility being unspecified, yields an empty string.</remarks>
19+
public static string TokenString(this Accessibility access)
20+
{
21+
return access == Accessibility.Implicit ? string.Empty : access.ToString();
22+
}
23+
}
24+
1225
}

0 commit comments

Comments
 (0)