protected override void Initialize()
{
// Initialize shared components
DTE = GetService(typeof(DTE)) as DTE2;
Logger.Initialize(this, Vsix.Name);
Settings.Initialize(this);
SolutionHandler.Initialize(DTE);
SuggestionHandler.Initialize();
DocumentOpenListener.Initialize(DTE.Events.DocumentEvents);
// Initialize other components
var repository = (IVsExtensionRepository)GetService(typeof(SVsExtensionRepository));
var manager = (IVsExtensionManager)GetService(typeof(SVsExtensionManager));
ExtensionInstalledChecker.Initialize(this, repository, manager);
ShowMissingCommand.Initialize(this);
ModifyMissingCommand.Initialize(this);
ShowSuggestionsCommand.Initialize(this, repository, manager);
InfoBarService.Initialize(this, repository, manager);
}