Skip to content

Commit 5ac30ca

Browse files
committed
Create extension method for determining if the VBE is running
1 parent 69337ce commit 5ac30ca

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

RetailCoder.VBE/UI/Command/RunAllTestsCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Rubberduck.Parsing.VBA;
66
using Rubberduck.UI.UnitTesting;
77
using Rubberduck.UnitTesting;
8+
using Rubberduck.VBEditor.Extensions;
89

910
namespace Rubberduck.UI.Command
1011
{
@@ -28,7 +29,7 @@ public RunAllTestsCommand(VBE vbe, RubberduckParserState state, ITestEngine engi
2829

2930
public override bool CanExecute(object parameter)
3031
{
31-
return _vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design);
32+
return _vbe.IsInDesignMode();
3233
}
3334

3435
public override void Execute(object parameter)

RetailCoder.VBE/UI/UnitTesting/TestExplorerViewModel.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Rubberduck.UI.Controls;
1414
using Rubberduck.UI.Settings;
1515
using Rubberduck.UnitTesting;
16+
using Rubberduck.VBEditor.Extensions;
1617

1718
namespace Rubberduck.UI.UnitTesting
1819
{
@@ -85,26 +86,22 @@ private void RunCompleted(object sender, TestRunEventArgs e)
8586

8687
private bool CanExecuteRunPassedTestsCommand(object obj)
8788
{
88-
return _vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design) &&
89-
_model.Tests.Any(test => test.Result.Outcome == TestOutcome.Succeeded);
89+
return _vbe.IsInDesignMode() && _model.Tests.Any(test => test.Result.Outcome == TestOutcome.Succeeded);
9090
}
9191

9292
private bool CanExecuteRunFailedTestsCommand(object obj)
9393
{
94-
return _vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design) &&
95-
_model.Tests.Any(test => test.Result.Outcome == TestOutcome.Failed);
94+
return _vbe.IsInDesignMode() && _model.Tests.Any(test => test.Result.Outcome == TestOutcome.Failed);
9695
}
9796

9897
private bool CanExecuteRunNotExecutedTestsCommand(object obj)
9998
{
100-
return _vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design) &&
101-
_model.Tests.Any(test => test.Result.Outcome == TestOutcome.Unknown);
99+
return _vbe.IsInDesignMode() && _model.Tests.Any(test => test.Result.Outcome == TestOutcome.Unknown);
102100
}
103101

104102
private bool CanExecuteRepeatLastRunCommand(object obj)
105103
{
106-
return _vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design) &&
107-
_model.LastRun.Any();
104+
return _vbe.IsInDesignMode() && _model.LastRun.Any();
108105
}
109106

110107
public event EventHandler<EventArgs> TestCompleted;

Rubberduck.VBEEditor/Extensions/VbeExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ public static void SetSelection(this VBE vbe, VBProject vbProject, Selection sel
2828
}
2929
}
3030

31+
public static bool IsInDesignMode(this VBE vbe)
32+
{
33+
return vbe.VBProjects.Cast<VBProject>().All(project => project.Mode == vbext_VBAMode.vbext_vm_Design);
34+
}
35+
3136
public static CodeModuleSelection FindInstruction(this VBE vbe, QualifiedModuleName qualifiedModuleName, Selection selection)
3237
{
3338
var module = qualifiedModuleName.Component.CodeModule;

0 commit comments

Comments
 (0)