Skip to content

Commit 2efc2a1

Browse files
committed
Update the startup and the IoC registration
1 parent 4b98540 commit 2efc2a1

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

Rubberduck.Main/Extension.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ private void InitializeAddIn()
145145
return;
146146
}
147147

148-
var configLoader = new XmlPersistanceService<GeneralSettings>()
148+
var pathProvider = PersistancePathProvider.Instance;
149+
var configLoader = new XmlPersistanceService<GeneralSettings>(pathProvider)
149150
{
150151
FilePath =
151152
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),

Rubberduck.Main/Root/RubberduckIoCInstaller.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using Castle.MicroKernel.Resolvers.SpecializedResolvers;
1010
using Castle.MicroKernel.SubSystems.Configuration;
1111
using Castle.Windsor;
12-
using Rubberduck.AddRemoveReferences;
1312
using Rubberduck.ComClientLibrary.UnitTesting;
1413
using Rubberduck.Common;
1514
using Rubberduck.Common.Hotkeys;
@@ -54,6 +53,9 @@
5453
using Rubberduck.Parsing.VBA.DeclarationCaching;
5554
using Rubberduck.Parsing.VBA.Parsing.ParsingExceptions;
5655
using Rubberduck.UI.AddRemoveReferences;
56+
using Rubberduck.UI.Settings;
57+
using GeneralSettings = Rubberduck.Settings.GeneralSettings;
58+
using IndenterSettings = Rubberduck.SmartIndenter.IndenterSettings;
5759

5860
namespace Rubberduck.Root
5961
{
@@ -124,6 +126,7 @@ public void Install(IWindsorContainer container, IConfigurationStore store)
124126
.ImplementedBy<VBEInteraction>()
125127
.LifestyleSingleton());
126128

129+
RegisterSettingsViewModel(container);
127130
RegisterRefactoringDialogs(container);
128131

129132
container.Register(Component.For<ISearchResultsWindowViewModel>()
@@ -613,6 +616,23 @@ private Type[] ToolsMenuItems()
613616
return items.ToArray();
614617
}
615618

619+
private void RegisterSettingsViewModel(IWindsorContainer container)
620+
{
621+
container.Register(Types
622+
.FromAssemblyInThisApplication()
623+
.IncludeNonPublicTypes()
624+
.BasedOn(typeof(SettingsViewModelBase<>))
625+
.LifestyleTransient()
626+
.WithServiceSelect((type, types) =>
627+
{
628+
var face = type.GetInterfaces().FirstOrDefault(i =>
629+
i.IsGenericType && i.GetGenericTypeDefinition() == typeof(ISettingsViewModel<>));
630+
631+
return face == null ? new[] { type } : new[] { type, face };
632+
})
633+
);
634+
}
635+
616636
private void RegisterRefactoringDialogs(IWindsorContainer container)
617637
{
618638
container.Register(Component.For<IRefactoringDialog<RenameViewModel>>()

0 commit comments

Comments
 (0)