diff --git a/Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs b/Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs index c0d68968a7..8956ff544e 100644 --- a/Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs +++ b/Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs @@ -90,58 +90,46 @@ public string SignaturePreview private string GetSignature(SubroutineDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Sub " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name); - return signature + string.Join(", ", selectedParams) + ")"; + return $"{access} Sub {member.IdentifierName}({string.Join(", ", selectedParams)})"; } private string GetSignature(FunctionDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Function " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name); - return signature + string.Join(", ", selectedParams) + ") As " + member.AsTypeName; + return $"{access} Function {member.IdentifierName}({string.Join(", ", selectedParams)}) As {member.AsTypeName}"; } private string GetSignature(EventDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Event " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name); - return signature + string.Join(", ", selectedParams) + ")"; + return $"{access} Event {member.IdentifierName}({string.Join(", ", selectedParams)})"; } private string GetSignature(PropertyGetDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Property Get " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name); - return signature + string.Join(", ", selectedParams) + ") As " + member.AsTypeName; + return $"{access} Property Get {member.IdentifierName}({string.Join(", ", selectedParams)}) As {member.AsTypeName}"; } private string GetSignature(PropertyLetDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Property Let " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name).ToList(); selectedParams.Add(new Parameter(member.Parameters.Last()).Name); - return signature + string.Join(", ", selectedParams) + ")"; + return $"{access} Property Let {member.IdentifierName}({string.Join(", ", selectedParams)})"; } private string GetSignature(PropertySetDeclaration member) { - var signature = member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString(); - signature += " Property Set " + member.IdentifierName + "("; - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Where(p => !p.IsRemoved).Select(s => s.Name).ToList(); selectedParams.Add(new Parameter(member.Parameters.Last()).Name); - return signature + string.Join(", ", selectedParams) + ")"; + return $"{access} Property Set {member.IdentifierName}({string.Join(", ", selectedParams)})"; } private void RemoveParameter(ParameterViewModel parameter) diff --git a/Rubberduck.Core/UI/Refactorings/ReorderParameters/ReorderParametersViewModel.cs b/Rubberduck.Core/UI/Refactorings/ReorderParameters/ReorderParametersViewModel.cs index 8750086836..a8bdfe3536 100644 --- a/Rubberduck.Core/UI/Refactorings/ReorderParameters/ReorderParametersViewModel.cs +++ b/Rubberduck.Core/UI/Refactorings/ReorderParameters/ReorderParametersViewModel.cs @@ -93,70 +93,48 @@ public string SignaturePreview private string GetSignature(SubroutineDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Sub {member.IdentifierName}("); - - var selectedParams = Parameters.Select(s => s.Name); - signature.Append($", {selectedParams})"); - return signature.ToString(); + var accessibility = member.Accessibility.TokenString(); + var parameterList = string.Join(", ", Parameters.Select(p => p.Name)); + return $"{accessibility} Sub {member.IdentifierName}({parameterList})"; } private string GetSignature(FunctionDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Function {member.IdentifierName}("); - - var selectedParams = Parameters.Select(s => s.Name); - signature.Append($", {selectedParams}) As {member.AsTypeName}"); - return signature.ToString(); + var accessibility = member.Accessibility.TokenString(); + var parameterList = string.Join(", ", Parameters.Select(p => p.Name)); + return $"{accessibility} Function {member.IdentifierName}({parameterList}) As {member.AsTypeName}"; } private string GetSignature(EventDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Event {member.IdentifierName}("); - - var selectedParams = Parameters.Select(s => s.Name); - signature.Append($", {selectedParams})"); - return signature.ToString(); + var access = member.Accessibility.TokenString(); + var parameters = string.Join(", ", Parameters.Select(p => p.Name)); + return $"{access} Event {member.IdentifierName}({parameters})"; } private string GetSignature(PropertyGetDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Property Get {member.IdentifierName}("); - - var selectedParams = Parameters.Select(s => s.Name); - signature.Append($", {selectedParams}) As {member.AsTypeName}"); - return signature.ToString(); + var access = member.Accessibility.TokenString(); + var parameters = string.Join(", ", Parameters.Select(p => p.Name)); + return $"{access} Property Get {member.IdentifierName}({parameters}) As {member.AsTypeName}"; } private string GetSignature(PropertyLetDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Property Let {member.IdentifierName}("); - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Select(s => s.Name).ToList(); selectedParams.Add(new Parameter(member.Parameters.Last(), -1).Name); - signature.Append($", {selectedParams})"); - return signature.ToString(); + var parameters = string.Join(", ", selectedParams); + return $"{access} Property Let {member.IdentifierName}({parameters})"; } private string GetSignature(PropertySetDeclaration member) { - var signature = new StringBuilder(); - signature.Append(member.Accessibility == Accessibility.Implicit ? string.Empty : member.Accessibility.ToString()); - signature.Append($" Property Set {member.IdentifierName}("); - + var access = member.Accessibility.TokenString(); var selectedParams = Parameters.Select(s => s.Name).ToList(); selectedParams.Add(new Parameter(member.Parameters.Last(), -1).Name); - signature.Append($", {selectedParams})"); - return signature.ToString(); + var parameters = string.Join(", ", selectedParams); + return $"{access} Property Set {member.IdentifierName}({parameters})"; } public void UpdatePreview() => OnPropertyChanged(nameof(SignaturePreview)); diff --git a/Rubberduck.Parsing/Symbols/Accessibility.cs b/Rubberduck.Parsing/Symbols/Accessibility.cs index 85df8b6d9a..918fad04ac 100644 --- a/Rubberduck.Parsing/Symbols/Accessibility.cs +++ b/Rubberduck.Parsing/Symbols/Accessibility.cs @@ -9,4 +9,17 @@ public enum Accessibility Global = 5, Static = 6 } + + public static class AccessibilityExtensions + { + /// + /// Gets the string/token representation of an accessibility specifier. + /// + /// Implicit accessibility being unspecified, yields an empty string. + public static string TokenString(this Accessibility access) + { + return access == Accessibility.Implicit ? string.Empty : access.ToString(); + } + } + }