Skip to content

Commit 53fc9dd

Browse files
authored
Merge pull request #3876 from Vogel612/refactor-carefully
Minor tweaks
2 parents 5e91894 + e8a405d commit 53fc9dd

20 files changed

+147
-142
lines changed

Rubberduck.Core/Refactorings/ExtractMethod/ExtractMethodSelectionValidation.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public bool withinSingleProcedure(QualifiedSelection qualifiedSelection)
6565

6666
return (procEnd as Declaration).QualifiedSelection.Equals((procStart as Declaration).QualifiedSelection)
6767
&& (procSignatureLastLine < startLine);
68-
6968
}
7069
}
7170
}

Rubberduck.Core/UI/Command/AddTestModuleCommand.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,16 @@ private string DeclarationFormatFor(string declarationFormat, string type, IUnit
121121

122122
private IVBProject GetProject()
123123
{
124-
using (var activeProject = _vbe.ActiveVBProject)
124+
var activeProject = _vbe.ActiveVBProject;
125+
if (!activeProject.IsWrappingNullReference)
125126
{
126-
if (!activeProject.IsWrappingNullReference)
127-
{
128-
return activeProject;
129-
}
127+
return activeProject;
130128
}
131129

132130
using (var projects = _vbe.VBProjects)
133131
{
134132
return projects.Count == 1
135-
? projects[1]
133+
? projects[1] // because VBA-Side indexing
136134
: new VBProject(null);
137135
}
138136
}

Rubberduck.Core/UI/Command/Refactorings/CodePaneRefactorRenameCommand.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ protected override bool EvaluateCanExecute(object parameter)
3333
target = _state.FindSelectedDeclaration(activePane);
3434
}
3535

36-
return _state.Status == ParserState.Ready && target != null && target.IsUserDefined;
36+
return _state.Status == ParserState.Ready
37+
&& target != null
38+
&& target.IsUserDefined
39+
&& !_state.IsNewOrModified(target.QualifiedModuleName);
3740
}
3841

3942
protected override void OnExecute(object parameter)

Rubberduck.Core/UI/Command/Refactorings/FormDesignerRefactorRenameCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public FormDesignerRefactorRenameCommand(IVBE vbe, RubberduckParserState state,
2424

2525
protected override bool EvaluateCanExecute(object parameter)
2626
{
27-
return _state.Status == ParserState.Ready && GetTarget() != null;
27+
var target = GetTarget();
28+
return _state.Status == ParserState.Ready && target != null && !_state.IsNewOrModified(target.QualifiedModuleName);
2829
}
2930

3031
protected override void OnExecute(object parameter)

Rubberduck.Core/UI/Command/Refactorings/RefactorEncapsulateFieldCommand.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ protected override bool EvaluateCanExecute(object parameter)
3333

3434
target = _state.FindSelectedDeclaration(pane);
3535
}
36-
var canExecute = target != null
36+
return target != null
3737
&& target.DeclarationType == DeclarationType.Variable
38-
&& !target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);
39-
40-
return canExecute;
38+
&& !target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member)
39+
&& !_state.IsNewOrModified(target.QualifiedModuleName);
4140
}
4241

4342
protected override void OnExecute(object parameter)

Rubberduck.Core/UI/Command/Refactorings/RefactorExtractInterfaceCommand.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ protected override bool EvaluateCanExecute(object parameter)
6767
var context = ((ParserRuleContext)parseTree).GetDescendents<VBAParser.ImplementsStmtContext>();
6868

6969
// true if active code pane is for a class/document/form module
70-
return !context.Any();
70+
return !context.Any()
71+
&& !_state.IsNewOrModified(interfaceClass.QualifiedModuleName)
72+
&& !_state.IsNewOrModified(selection.Value.QualifiedName);
7173
}
7274

7375
protected override void OnExecute(object parameter)

Rubberduck.Core/UI/Command/Refactorings/RefactorExtractMethodCommand.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,14 @@ protected override bool EvaluateCanExecute(object parameter)
2525
{
2626

2727
var qualifiedSelection = Vbe.GetActiveSelection();
28-
2928
if (!qualifiedSelection.HasValue)
3029
{
3130
return false;
3231
}
32+
if (_state.IsNewOrModified(qualifiedSelection.Value.QualifiedName))
33+
{
34+
return false;
35+
}
3336

3437
var allDeclarations = _state.AllDeclarations;
3538
var extractMethodValidation = new ExtractMethodSelectionValidation(allDeclarations);

Rubberduck.Core/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,18 @@ protected override bool EvaluateCanExecute(object parameter)
2828
var selection = Vbe.GetActiveSelection();
2929

3030
if (!selection.HasValue)
31-
{
32-
return false;
33-
}
34-
35-
var targetInterface = _state.AllUserDeclarations.FindInterface(selection.Value);
31+
{
32+
return false;
33+
}
3634

37-
var targetClass = _state.AllUserDeclarations.SingleOrDefault(d =>
38-
d.DeclarationType == DeclarationType.ClassModule &&
39-
d.QualifiedSelection.QualifiedName.Equals(selection.Value.QualifiedName));
35+
var targetInterface = _state.AllUserDeclarations.FindInterface(selection.Value);
36+
37+
var targetClass = _state.DeclarationFinder.Members(selection.Value.QualifiedName)
38+
.SingleOrDefault(declaration => declaration.DeclarationType == DeclarationType.ClassModule);
4039

41-
return targetInterface != null && targetClass != null;
40+
return targetInterface != null && targetClass != null
41+
&& !_state.IsNewOrModified(targetInterface.QualifiedModuleName)
42+
&& !_state.IsNewOrModified(targetClass.QualifiedModuleName);
4243

4344
}
4445

Rubberduck.Core/UI/Command/Refactorings/RefactorIntroduceFieldCommand.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ protected override bool EvaluateCanExecute(object parameter)
3535

3636
var target = _state.AllUserDeclarations.FindVariable(selection.Value);
3737

38-
return target != null && target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);
38+
return target != null
39+
&& !_state.IsNewOrModified(target.QualifiedModuleName)
40+
&& target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);
3941
}
4042

4143
protected override void OnExecute(object parameter)

Rubberduck.Core/UI/Command/Refactorings/RefactorIntroduceParameterCommand.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ protected override bool EvaluateCanExecute(object parameter)
3434

3535
var target = _state.AllUserDeclarations.FindVariable(selection.Value);
3636

37-
return target != null && target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);
37+
return target != null
38+
&& !_state.IsNewOrModified(target.QualifiedModuleName)
39+
&& target.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Member);
3840
}
3941

4042
protected override void OnExecute(object parameter)

0 commit comments

Comments
 (0)