Skip to content

Commit 6d82ad9

Browse files
authored
Merge pull request #1871 from Vogel612/RegexAssistant
Regex Assistant - [review-and-merge-please]
2 parents f40a5f3 + db43d7c commit 6d82ad9

36 files changed

+3077
-52
lines changed

RetailCoder.VBE/Root/RubberduckModule.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ public override void Load()
144144
ConfigureFormDesignerContextMenu();
145145
ConfigureFormDesignerControlContextMenu();
146146
ConfigureProjectExplorerContextMenu();
147+
147148

148149
BindWindowsHooks();
149150
}
@@ -383,9 +384,9 @@ private IEnumerable<IMenuItem> GetRubberduckMenuItems()
383384
Kernel.Get<AboutCommandMenuItem>(),
384385
Kernel.Get<SettingsCommandMenuItem>(),
385386
Kernel.Get<InspectionResultsCommandMenuItem>(),
386-
Kernel.Get<ShowSourceControlPanelCommandMenuItem>(),
387387
GetUnitTestingParentMenu(),
388388
GetSmartIndenterParentMenu(),
389+
GetToolsParentMenu(),
389390
GetRefactoringsParentMenu(),
390391
GetNavigateParentMenu(),
391392
};
@@ -427,7 +428,6 @@ private IMenuItem GetNavigateParentMenu()
427428
var items = new IMenuItem[]
428429
{
429430
Kernel.Get<CodeExplorerCommandMenuItem>(),
430-
Kernel.Get<ToDoExplorerCommandMenuItem>(),
431431
//Kernel.Get<RegexSearchReplaceCommandMenuItem>(),
432432
Kernel.Get<FindSymbolCommandMenuItem>(),
433433
Kernel.Get<FindAllReferencesCommandMenuItem>(),
@@ -454,13 +454,24 @@ private IEnumerable<IMenuItem> GetCodePaneContextMenuItems()
454454
{
455455
GetRefactoringsParentMenu(),
456456
GetSmartIndenterParentMenu(),
457-
//Kernel.Get<RegexSearchReplaceCommandMenuItem>(),
458457
Kernel.Get<FindSymbolCommandMenuItem>(),
459458
Kernel.Get<FindAllReferencesCommandMenuItem>(),
460459
Kernel.Get<FindAllImplementationsCommandMenuItem>(),
461460
};
462461
}
463462

463+
private IMenuItem GetToolsParentMenu()
464+
{
465+
var items = new IMenuItem[]
466+
{
467+
Kernel.Get<ShowSourceControlPanelCommandMenuItem>(),
468+
Kernel.Get<RegexAssistantCommandMenuItem>(),
469+
Kernel.Get<ToDoExplorerCommandMenuItem>(),
470+
};
471+
472+
return new ToolsParentMenu(items);
473+
}
474+
464475
private IEnumerable<IMenuItem> GetFormDesignerContextMenuItems()
465476
{
466477
return new IMenuItem[]

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,9 @@
433433
<Compile Include="UI\CodeExplorer\Commands\AddClassModuleCommand.cs" />
434434
<Compile Include="UI\CodeExplorer\Commands\AddStdModuleCommand.cs" />
435435
<Compile Include="UI\CodeExplorer\Commands\AddTestModuleCommand.cs" />
436+
<Compile Include="UI\Command\MenuItems\RegexAssistantCommand.cs" />
437+
<Compile Include="UI\Command\MenuItems\RegexAssistantCommandMenuItem.cs" />
438+
<Compile Include="UI\Command\MenuItems\ToolsParentMenu.cs" />
436439
<Compile Include="UI\Controls\LinkButton.xaml.cs">
437440
<DependentUpon>LinkButton.xaml</DependentUpon>
438441
</Compile>
@@ -618,7 +621,6 @@
618621
<Compile Include="UI\Command\FindSymbolCommand.cs" />
619622
<Compile Include="UI\Command\FindAllReferencesCommand.cs" />
620623
<Compile Include="UI\Command\MenuItems\ParentMenus\NavigateParentMenu.cs" />
621-
<Compile Include="UI\Command\MenuItems\ParentMenus\NavigationMenuItemDisplayOrder.cs" />
622624
<Compile Include="UI\Command\MenuItems\ParentMenus\SmartIndenterParentMenu.cs" />
623625
<Compile Include="UI\Command\MenuItems\RubberduckCommandBar.cs" />
624626
<Compile Include="UI\Command\MenuItems\RefactorEncapsulateFieldCommandMenuItem.cs" />
@@ -691,11 +693,26 @@
691693
<Compile Include="UI\Refactorings\ExtractInterfaceDialog.Designer.cs">
692694
<DependentUpon>ExtractInterfaceDialog.cs</DependentUpon>
693695
</Compile>
696+
<Compile Include="UI\RegexAssistant\RegexAssistant.xaml.cs">
697+
<DependentUpon>RegexAssistant.xaml</DependentUpon>
698+
</Compile>
699+
<Compile Include="UI\RegexAssistant\RegexAssistantDialog.cs">
700+
<SubType>Form</SubType>
701+
</Compile>
702+
<Compile Include="UI\RegexAssistant\RegexAssistantDialog.Designer.cs">
703+
<DependentUpon>RegexAssistantDialog.cs</DependentUpon>
704+
</Compile>
705+
<Compile Include="UI\RegexAssistant\RegexAssistantViewModel.cs" />
694706
<Compile Include="UI\RubberduckUI.de.Designer.cs">
695707
<AutoGen>True</AutoGen>
696708
<DesignTime>True</DesignTime>
697709
<DependentUpon>RubberduckUI.de.resx</DependentUpon>
698710
</Compile>
711+
<Compile Include="UI\RubberduckUI.Designer.cs">
712+
<AutoGen>True</AutoGen>
713+
<DesignTime>True</DesignTime>
714+
<DependentUpon>RubberduckUI.resx</DependentUpon>
715+
</Compile>
699716
<Compile Include="UI\RubberduckUI.ja.Designer.cs">
700717
<AutoGen>True</AutoGen>
701718
<DesignTime>True</DesignTime>
@@ -820,11 +837,6 @@
820837
<AutoGen>True</AutoGen>
821838
<DesignTime>True</DesignTime>
822839
</Compile>
823-
<Compile Include="UI\RubberduckUI.Designer.cs">
824-
<AutoGen>True</AutoGen>
825-
<DesignTime>True</DesignTime>
826-
<DependentUpon>RubberduckUI.resx</DependentUpon>
827-
</Compile>
828840
<Compile Include="UI\SourceControl\BranchesView.xaml.cs">
829841
<DependentUpon>BranchesView.xaml</DependentUpon>
830842
</Compile>
@@ -1031,6 +1043,9 @@
10311043
<EmbeddedResource Include="UI\Refactorings\ExtractInterfaceDialog.resx">
10321044
<DependentUpon>ExtractInterfaceDialog.cs</DependentUpon>
10331045
</EmbeddedResource>
1046+
<EmbeddedResource Include="UI\RegexAssistant\RegexAssistantDialog.resx">
1047+
<DependentUpon>RegexAssistantDialog.cs</DependentUpon>
1048+
</EmbeddedResource>
10341049
<EmbeddedResource Include="UI\RubberduckUI.de.resx">
10351050
<Generator>PublicResXFileCodeGenerator</Generator>
10361051
<LastGenOutput>RubberduckUI.de.Designer.cs</LastGenOutput>
@@ -1352,6 +1367,10 @@
13521367
<Project>{A4A618E1-CBCA-435F-9C6C-5181E030ADFC}</Project>
13531368
<Name>Rubberduck.Parsing</Name>
13541369
</ProjectReference>
1370+
<ProjectReference Include="..\Rubberduck.RegexAssistant\Rubberduck.RegexAssistant.csproj">
1371+
<Project>{40cc03e3-756c-4674-af07-384115deaee2}</Project>
1372+
<Name>Rubberduck.RegexAssistant</Name>
1373+
</ProjectReference>
13551374
<ProjectReference Include="..\Rubberduck.SettingsProvider\Rubberduck.SettingsProvider.csproj">
13561375
<Project>{e85e1253-86d6-45ee-968b-f37348d44132}</Project>
13571376
<Name>Rubberduck.SettingsProvider</Name>
@@ -1406,6 +1425,10 @@
14061425
<SubType>Designer</SubType>
14071426
<Generator>MSBuild:Compile</Generator>
14081427
</Page>
1428+
<Page Include="UI\RegexAssistant\RegexAssistant.xaml">
1429+
<Generator>MSBuild:Compile</Generator>
1430+
<SubType>Designer</SubType>
1431+
</Page>
14091432
<Page Include="UI\Settings\GeneralSettings.xaml">
14101433
<SubType>Designer</SubType>
14111434
<Generator>MSBuild:Compile</Generator>

RetailCoder.VBE/UI/Command/MenuItems/ParentMenus/NavigateParentMenu.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,13 @@ public NavigateParentMenu(IEnumerable<IMenuItem> items)
1111

1212
public override int DisplayOrder { get { return (int)RubberduckMenuItemDisplayOrder.Navigate; } }
1313
}
14+
15+
public enum NavigationMenuItemDisplayOrder
16+
{
17+
CodeExplorer,
18+
RegexSearchReplace,
19+
FindSymbol,
20+
FindAllReferences,
21+
FindImplementations
22+
}
1423
}

RetailCoder.VBE/UI/Command/MenuItems/ParentMenus/NavigationMenuItemDisplayOrder.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

RetailCoder.VBE/UI/Command/MenuItems/ParentMenus/RubberduckParentMenu.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ public enum RubberduckMenuItemDisplayOrder
1515
UnitTesting,
1616
Refactorings,
1717
Navigate,
18+
Tools,
1819
CodeInspections,
19-
SourceControl,
2020
Settings,
21-
About
21+
About,
2222
}
2323
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Collections.Generic;
2+
3+
namespace Rubberduck.UI.Command.MenuItems.ParentMenus
4+
{
5+
public class ToolsParentMenu : ParentMenuItemBase
6+
{
7+
public ToolsParentMenu(IEnumerable<IMenuItem> items)
8+
: base("ToolsMenu", items)
9+
{
10+
}
11+
12+
public override int DisplayOrder
13+
{
14+
get
15+
{
16+
return (int)RubberduckMenuItemDisplayOrder.Tools;
17+
}
18+
}
19+
20+
21+
}
22+
23+
public enum ToolsMenuItemDisplayOrder
24+
{
25+
SourceControl,
26+
ToDoExplorer,
27+
RegexAssistant,
28+
}
29+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System.Runtime.InteropServices;
2+
using NLog;
3+
using Rubberduck.UI.RegexAssistant;
4+
5+
namespace Rubberduck.UI.Command.MenuItems
6+
{
7+
/// <summary>
8+
/// A command that displays the RegexAssistantDialog
9+
/// </summary>
10+
[ComVisible(false)]
11+
class RegexAssistantCommand : CommandBase
12+
{
13+
public RegexAssistantCommand() : base (LogManager.GetCurrentClassLogger())
14+
{
15+
}
16+
17+
protected override void ExecuteImpl(object parameter)
18+
{
19+
using (var window = new RegexAssistantDialog())
20+
{
21+
window.ShowDialog();
22+
}
23+
}
24+
}
25+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using Rubberduck.UI.Command.MenuItems.ParentMenus;
2+
using System.Windows.Input;
3+
4+
namespace Rubberduck.UI.Command.MenuItems
5+
{
6+
class RegexAssistantCommandMenuItem : CommandMenuItemBase
7+
{
8+
public RegexAssistantCommandMenuItem(CommandBase command) : base(command)
9+
{
10+
}
11+
12+
public override string Key { get { return "ToolsMenu_RegexAssistant"; } }
13+
14+
public override int DisplayOrder { get { return (int)ToolsMenuItemDisplayOrder.RegexAssistant; } }
15+
}
16+
}

RetailCoder.VBE/UI/Command/MenuItems/ShowSourceControlPanelCommandMenuItem.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public ShowSourceControlPanelCommandMenuItem(CommandBase command)
1010
{
1111
}
1212

13-
public override string Key { get { return "RubberduckMenu_SourceControl"; } }
14-
public override int DisplayOrder { get { return (int)RubberduckMenuItemDisplayOrder.SourceControl; } }
13+
public override string Key { get { return "ToolsMenu_SourceControl"; } }
14+
public override int DisplayOrder { get { return (int)ToolsMenuItemDisplayOrder.SourceControl; } }
1515
}
1616
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Windows.Input;
2-
using Rubberduck.UI.Command.MenuItems.ParentMenus;
1+
using Rubberduck.UI.Command.MenuItems.ParentMenus;
32

43
namespace Rubberduck.UI.Command.MenuItems
54
{
@@ -10,7 +9,7 @@ public ToDoExplorerCommandMenuItem(CommandBase command)
109
{
1110
}
1211

13-
public override string Key { get { return "RubberduckMenu_TodoItems"; } }
14-
public override int DisplayOrder { get { return (int)NavigationMenuItemDisplayOrder.ToDoExplorer; } }
12+
public override string Key { get { return "ToolsMenu_TodoItems"; } }
13+
public override int DisplayOrder { get { return (int)ToolsMenuItemDisplayOrder.ToDoExplorer; } }
1514
}
1615
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Collections.Generic;
2+
3+
namespace Rubberduck.UI.Command.MenuItems.ParentMenus
4+
{
5+
public class ToolsParentMenu : ParentMenuItemBase
6+
{
7+
public ToolsParentMenu(IEnumerable<IMenuItem> items)
8+
: base("ToolsMenu", items)
9+
{
10+
}
11+
12+
public override int DisplayOrder
13+
{
14+
get
15+
{
16+
return (int)RubberduckMenuItemDisplayOrder.Tools;
17+
}
18+
}
19+
20+
21+
}
22+
23+
public enum ToolsMenuItemDisplayOrder
24+
{
25+
SourceControl,
26+
ToDoExplorer,
27+
RegexAssistant,
28+
}
29+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using NLog;
2+
using Rubberduck.UI.RegexAssistant;
3+
using System.Runtime.InteropServices;
4+
5+
namespace Rubberduck.UI.Command
6+
{
7+
/// <summary>
8+
/// A command that displays the RegexAssistantDialog
9+
/// </summary>
10+
[ComVisible(false)]
11+
class RegexAssistantCommand : CommandBase
12+
{
13+
public RegexAssistantCommand() : base (LogManager.GetCurrentClassLogger())
14+
{
15+
}
16+
17+
protected override void ExecuteImpl(object parameter)
18+
{
19+
using (var window = new RegexAssistantDialog())
20+
{
21+
window.ShowDialog();
22+
}
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)