Skip to content

Commit

Permalink
Fix the reorder parameters preview generation (#4927)
Browse files Browse the repository at this point in the history
Fix the reorder parameters preview generation

Co-authored-by: Mathieu Guindon <retailcoder@gmail.com>
  • Loading branch information
Vogel612 and retailcoder committed Apr 26, 2019
2 parents 4d5420b + 765f931 commit 1655c1c
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 64 deletions.
Expand Up @@ -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)
Expand Down
Expand Up @@ -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));
Expand Down
13 changes: 13 additions & 0 deletions Rubberduck.Parsing/Symbols/Accessibility.cs
Expand Up @@ -9,4 +9,17 @@ public enum Accessibility
Global = 5,
Static = 6
}

public static class AccessibilityExtensions
{
/// <summary>
/// Gets the string/token representation of an accessibility specifier.
/// </summary>
/// <remarks>Implicit accessibility being unspecified, yields an empty string.</remarks>
public static string TokenString(this Accessibility access)
{
return access == Accessibility.Implicit ? string.Empty : access.ToString();
}
}

}

0 comments on commit 1655c1c

Please sign in to comment.