Skip to content

Commit 0da29c2

Browse files
authored
Merge pull request #5562 from BZngr/DefaultPropertyRHSIdentifer
Change CodeBuilder default property rhs parameter identifier to 'RHS'
2 parents a64fc33 + 4f6a636 commit 0da29c2

17 files changed

+94
-163
lines changed

Rubberduck.Refactorings/Common/CodeBuilder.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,10 @@ bool TryBuildPropertySetCodeBlock(Declaration prototype,
6868
string accessibility = null,
6969
string content = null,
7070
string parameterIdentifier = null);
71-
/// <summary>
72-
/// Generates a default RHS property parameter IdentifierName
73-
/// </summary>
74-
/// <param name="propertyIdentifier">Let/Set Property IdentifierName</param>
75-
string BuildPropertyRhsParameterName(string propertyIdentifier);
7671
}
7772

7873
public class CodeBuilder : ICodeBuilder
7974
{
80-
public string BuildPropertyRhsParameterName(string propertyIdentifier)
81-
=> string.Format(Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParamFormat, propertyIdentifier.ToLowerCaseFirstLetter());
82-
8375
public string BuildMemberBlockFromPrototype(ModuleBodyElementDeclaration declaration,
8476
string content = null,
8577
string accessibility = null,
@@ -119,7 +111,7 @@ private bool TryBuildPropertyBlockFromTarget<T>(T prototype, DeclarationType let
119111
return false;
120112
}
121113

122-
var propertyValueParam = parameterIdentifier ?? BuildPropertyRhsParameterName(propertyIdentifier);
114+
var propertyValueParam = parameterIdentifier ?? Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParam;
123115

124116
var asType = prototype.IsArray
125117
? $"{Tokens.Variant}"

Rubberduck.Refactorings/EncapsulateField/EncapsulateFieldElementsBuilder.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using Rubberduck.Parsing.Grammar;
2-
using Rubberduck.Parsing.Symbols;
1+
using Rubberduck.Parsing.Symbols;
32
using Rubberduck.Parsing.VBA;
43
using Rubberduck.Refactorings.Common;
54
using Rubberduck.VBEditor;
@@ -111,7 +110,7 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
111110
if (target.IsUserDefinedType())
112111
{
113112
var udtValidator = EncapsulateFieldValidationsProvider.NameOnlyValidator(NameValidators.UserDefinedType);
114-
var udtField = new UserDefinedTypeCandidate(target, udtValidator, _codeBuilder.BuildPropertyRhsParameterName) as IUserDefinedTypeCandidate;
113+
var udtField = new UserDefinedTypeCandidate(target, udtValidator) as IUserDefinedTypeCandidate;
115114

116115
(Declaration udtDeclaration, IEnumerable<Declaration> udtMembers) = GetUDTAndMembersForField(udtField);
117116

@@ -126,7 +125,7 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
126125
{
127126
udtMemberValidator = EncapsulateFieldValidationsProvider.NameOnlyValidator(NameValidators.UserDefinedTypeMemberArray);
128127
}
129-
var candidateUDTMember = new UserDefinedTypeMemberCandidate(CreateCandidate(udtMemberDeclaration, udtMemberValidator), udtField, _codeBuilder.BuildPropertyRhsParameterName) as IUserDefinedTypeMemberCandidate;
128+
var candidateUDTMember = new UserDefinedTypeMemberCandidate(CreateCandidate(udtMemberDeclaration, udtMemberValidator), udtField) as IUserDefinedTypeMemberCandidate;
130129

131130
udtField.AddMember(candidateUDTMember);
132131
}
@@ -142,10 +141,10 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
142141
}
143142
else if (target.IsArray)
144143
{
145-
return new ArrayCandidate(target, validator, _codeBuilder.BuildPropertyRhsParameterName);
144+
return new ArrayCandidate(target, validator);
146145
}
147146

148-
var candidate = new EncapsulateFieldCandidate(target, validator, _codeBuilder.BuildPropertyRhsParameterName);
147+
var candidate = new EncapsulateFieldCandidate(target, validator);
149148
return candidate;
150149
}
151150

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/ArrayCandidate.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using Rubberduck.Parsing.Grammar;
33
using Rubberduck.Parsing.Symbols;
44
using Rubberduck.Resources;
5-
using System;
65
using System.Linq;
76

87
namespace Rubberduck.Refactorings.EncapsulateField
@@ -16,8 +15,8 @@ public interface IArrayCandidate : IEncapsulateFieldCandidate
1615
public class ArrayCandidate : EncapsulateFieldCandidate, IArrayCandidate
1716
{
1817
private string _subscripts;
19-
public ArrayCandidate(Declaration declaration, IValidateVBAIdentifiers validator, Func<string,string> parameterNameBuilder)
20-
:base(declaration, validator, parameterNameBuilder)
18+
public ArrayCandidate(Declaration declaration, IValidateVBAIdentifiers validator)
19+
:base(declaration, validator)
2120
{
2221
ImplementLet = false;
2322
ImplementSet = false;

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/EncapsulateFieldCandidate.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ public class EncapsulateFieldCandidate : IEncapsulateFieldCandidate
4545
protected int _hashCode;
4646
private string _identifierName;
4747
protected EncapsulationIdentifiers _fieldAndProperty;
48-
private Func<string, string> _parameterNameBuilder;
48+
private string _rhsParameterIdentifierName;
4949

50-
public EncapsulateFieldCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, Func<string, string> parameterNameBuilder)
50+
public EncapsulateFieldCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator)
5151
{
5252
_target = declaration;
5353
NameValidator = identifierValidator;
54-
_parameterNameBuilder = parameterNameBuilder;
54+
_rhsParameterIdentifierName = Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParam;
5555

5656
_fieldAndProperty = new EncapsulationIdentifiers(declaration.IdentifierName, identifierValidator);
5757
IdentifierName = declaration.IdentifierName;
@@ -202,7 +202,7 @@ public string IdentifierName
202202

203203
public virtual string ReferenceQualifier { set; get; }
204204

205-
public string ParameterName => _parameterNameBuilder(PropertyIdentifier);
205+
public string ParameterName => _rhsParameterIdentifierName;
206206

207207
private bool _implLet;
208208
public bool ImplementLet { get => !IsReadOnly && _implLet; set => _implLet = value; }

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/UserDefinedTypeCandidate.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public interface IUserDefinedTypeCandidate : IEncapsulateFieldCandidate
1717

1818
public class UserDefinedTypeCandidate : EncapsulateFieldCandidate, IUserDefinedTypeCandidate
1919
{
20-
public UserDefinedTypeCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, Func<string,string> parameterNameBuilder)
21-
: base(declaration, identifierValidator, parameterNameBuilder)
20+
public UserDefinedTypeCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator)
21+
: base(declaration, identifierValidator)
2222
{
2323
}
2424

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/UserDefinedTypeMemberCandidate.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ public class UserDefinedTypeMemberCandidate : IUserDefinedTypeMemberCandidate
2020
{
2121
private int _hashCode;
2222
private readonly string _uniqueID;
23-
private Func<string, string> _parameterNameBuilder;
24-
public UserDefinedTypeMemberCandidate(IEncapsulateFieldCandidate candidate, IUserDefinedTypeCandidate udtField, Func<string,string> parameterNameBuilder)
23+
private string _rhsParameterIdentifierName;
24+
public UserDefinedTypeMemberCandidate(IEncapsulateFieldCandidate candidate, IUserDefinedTypeCandidate udtField)
2525
{
2626
_wrappedCandidate = candidate;
27-
_parameterNameBuilder = parameterNameBuilder;
27+
_rhsParameterIdentifierName = Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParam;
2828
UDTField = udtField;
2929
PropertyIdentifier = IdentifierName;
3030
BackingIdentifier = IdentifierName;
@@ -203,7 +203,7 @@ public QualifiedModuleName QualifiedModuleName
203203

204204
public string PropertyAsTypeName => _wrappedCandidate.PropertyAsTypeName;
205205

206-
public string ParameterName => _parameterNameBuilder(PropertyIdentifier);
206+
public string ParameterName => _rhsParameterIdentifierName;
207207

208208
public bool ImplementLet => _wrappedCandidate.ImplementLet;
209209

Rubberduck.Refactorings/EncapsulateField/ObjectStateUDT.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
3030
//newly inserted declaration
3131
public class ObjectStateUDT : IObjectStateUDT
3232
{
33-
private static string _defaultNewFieldName = RubberduckUI.EncapsulateField_DefaultObjectStateUDTFieldName; // EncapsulateFieldResources.DefaultStateUDTFieldName;
33+
private static string _defaultNewFieldName = "this";
3434
private List<IConvertToUDTMember> _convertedMembers;
3535

3636
private readonly IUserDefinedTypeCandidate _wrappedUDT;

Rubberduck.Resources/Refactorings/Refactorings.Designer.cs

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Rubberduck.Resources/Refactorings/Refactorings.resx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120-
<data name="CodeBuilder_DefaultPropertyRHSParamFormat" xml:space="preserve">
121-
<value>{0}Value</value>
122-
<comment>0: Property Name (first char lower case)</comment>
120+
<data name="CodeBuilder_DefaultPropertyRHSParam" xml:space="preserve">
121+
<value>RHS</value>
122+
<comment>VBA identifier; should not be translated</comment>
123123
</data>
124124
<data name="ImplementInterface_TODO" xml:space="preserve">
125125
<value>'TODO implement interface member</value>

Rubberduck.Resources/RubberduckUI.Designer.cs

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Rubberduck.Resources/RubberduckUI.resx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,10 +1759,6 @@ Import aborted.</value>
17591759
<value>Unable to encapsulate '{0}'. ReDim({0}) statement(s) exist in other modules.</value>
17601760
<comment>{0} = selected field IdentifierName</comment>
17611761
</data>
1762-
<data name="EncapsulateField_DefaultObjectStateUDTFieldName" xml:space="preserve">
1763-
<value>this</value>
1764-
<comment>VBA identifier; should not be translated</comment>
1765-
</data>
17661762
<data name="EncapsulateField_NameConflictDetected" xml:space="preserve">
17671763
<value>Name conflict</value>
17681764
</data>

RubberduckTests/CodeBuilderTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using NUnit.Framework;
2-
using Rubberduck.Common;
32
using Rubberduck.Parsing.Symbols;
43
using Rubberduck.Refactorings;
54
using RubberduckTests.Mocks;
@@ -11,7 +10,7 @@ namespace RubberduckTests
1110
[TestFixture]
1211
public class CodeBuilderTests
1312
{
14-
private static string Param(string property) => $"{property.ToLowerCaseFirstLetter()}Value";
13+
private static string _rhsIdentifier = Rubberduck.Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParam;
1514

1615
[TestCase("fizz", DeclarationType.Variable, "Integer")]
1716
[TestCase("FirstValue", DeclarationType.UserDefinedTypeMember, "Long")]
@@ -194,7 +193,7 @@ Private fuzz As ETestType2
194193
declarationType,
195194
testParams,
196195
PropertyLetBlockFromPrototypeTest);
197-
StringAssert.Contains($"Property Let {testParams.Identifier}(ByVal {Param(testParams.Identifier)} As {typeName})", result);
196+
StringAssert.Contains($"Property Let {testParams.Identifier}(ByVal {_rhsIdentifier} As {typeName})", result);
198197
}
199198

200199
[TestCase("fizz", DeclarationType.Variable, "Variant")]
@@ -220,7 +219,7 @@ Private fizz As Variant
220219
testParams,
221220
PropertySetBlockFromPrototypeTest);
222221

223-
StringAssert.Contains($"Property Set {testParams.Identifier}(ByVal {Param(testParams.Identifier)} As {typeName})", result);
222+
StringAssert.Contains($"Property Set {testParams.Identifier}(ByVal {_rhsIdentifier} As {typeName})", result);
224223
}
225224

226225
[TestCase(DeclarationType.PropertyLet)]

RubberduckTests/Refactoring/EncapsulateField/EncapsulateFIeldTestSupport.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
using Moq;
2-
using Rubberduck.Common;
3-
using Rubberduck.Parsing.Rewriter;
1+
using Rubberduck.Parsing.Rewriter;
42
using Rubberduck.Parsing.Symbols;
5-
using Rubberduck.Parsing.UIContext;
63
using Rubberduck.Parsing.VBA;
74
using Rubberduck.Refactorings;
85
using Rubberduck.Refactorings.EncapsulateField;
@@ -19,7 +16,7 @@ namespace RubberduckTests.Refactoring.EncapsulateField
1916
{
2017
public class EncapsulateFieldTestSupport : InteractiveRefactoringTestBase<IEncapsulateFieldPresenter, EncapsulateFieldModel>
2118
{
22-
public string RhsParameterNameBuilder(string property) => $"{property.ToLowerCaseFirstLetter()}Value";
19+
public string RHSIdentifier => Rubberduck.Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParam;
2320

2421
public string StateUDTDefaultType => $"T{MockVbeBuilder.TestModuleName}";
2522

0 commit comments

Comments
 (0)