Skip to content

Commit da5ec5f

Browse files
committed
Changes following PR review:
- EvaluateCanExecute: Added nullcheck - GetTarget: Reduced indentation, condensed assigned with tuple deconstruction
1 parent 4ba1533 commit da5ec5f

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

RetailCoder.VBE/UI/Command/Refactorings/FormDesignerRefactorRenameCommand.cs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Linq;
22
using System.Runtime.InteropServices;
3+
using Rubberduck.Parsing.Grammar;
34
using Rubberduck.Parsing.Symbols;
45
using Rubberduck.Parsing.VBA;
56
using Rubberduck.Refactorings.Rename;
@@ -24,7 +25,8 @@ public FormDesignerRefactorRenameCommand(IVBE vbe, RubberduckParserState state,
2425

2526
protected override bool EvaluateCanExecute(object parameter)
2627
{
27-
return _state.Status == ParserState.Ready && GetTarget() != null;
28+
return (_state?.Status ?? ParserState.None) == ParserState.Ready
29+
&& GetTarget() != null;
2830
}
2931

3032
protected override void OnExecute(object parameter)
@@ -45,35 +47,36 @@ protected override void OnExecute(object parameter)
4547

4648
private Declaration GetTarget(QualifiedModuleName? qualifiedModuleName = null)
4749
{
48-
var projectId = qualifiedModuleName.HasValue
49-
? qualifiedModuleName.Value.ProjectId
50-
: Vbe.ActiveVBProject.ProjectId;
51-
52-
var component = qualifiedModuleName.HasValue
53-
? qualifiedModuleName.Value.Component
54-
: Vbe.SelectedVBComponent;
50+
(var projectId, var component) =
51+
qualifiedModuleName.HasValue
52+
? (qualifiedModuleName.Value.ProjectId, qualifiedModuleName.Value.Component)
53+
: (Vbe.ActiveVBProject.ProjectId, Vbe.SelectedVBComponent);
5554

5655
if (component?.HasDesigner ?? false)
5756
{
5857
if (qualifiedModuleName.HasValue)
5958
{
60-
return _state.DeclarationFinder.MatchName(qualifiedModuleName.Value.Name)
61-
.SingleOrDefault(m => m.ProjectId == projectId
62-
&& m.DeclarationType.HasFlag(qualifiedModuleName.Value.ComponentType)
63-
&& m.ComponentName == component.Name);
59+
return _state.DeclarationFinder
60+
.MatchName(qualifiedModuleName.Value.Name)
61+
.SingleOrDefault(m => m.ProjectId == projectId
62+
&& m.DeclarationType.HasFlag(qualifiedModuleName.Value.ComponentType)
63+
&& m.ComponentName == component.Name);
6464
}
6565

6666
var selectedCount = component.SelectedControls.Count;
6767
if (selectedCount > 1) { return null; }
6868

6969
// Cannot use DeclarationType.UserForm, parser only assigns UserForms the ClassModule flag
70-
var selectedType = selectedCount == 0 ? DeclarationType.ClassModule : DeclarationType.Control;
71-
var selectedName = selectedCount == 0 ? component.Name : component.SelectedControls[0].Name;
70+
(var selectedType, var selectedName) =
71+
selectedCount == 0
72+
? (DeclarationType.ClassModule, component.Name)
73+
: (DeclarationType.Control, component.SelectedControls[0].Name);
7274

73-
return _state.DeclarationFinder.MatchName(selectedName)
74-
.SingleOrDefault(m => m.ProjectId == projectId
75-
&& m.DeclarationType.HasFlag(selectedType)
76-
&& m.ComponentName == component.Name);
75+
return _state.DeclarationFinder
76+
.MatchName(selectedName)
77+
.SingleOrDefault(m => m.ProjectId == projectId
78+
&& m.DeclarationType.HasFlag(selectedType)
79+
&& m.ComponentName == component.Name);
7780
}
7881
return null;
7982
}

0 commit comments

Comments
 (0)