///////////////////////////////////////////////////////////////////////////// // Overriden Package Implementation #region Package Members /// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initilaization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString())); base.Initialize(); IServiceContainer serviceContainer = (IServiceContainer)this; //add languageservice languageService = new CocoLanguageService(); languageService.SetSite(this); serviceContainer.AddService(typeof(CocoLanguageService), languageService, true); //add library libraryManager = new CocoLibraryManager(this); serviceContainer.AddService(typeof(CocoLibraryManager), libraryManager, true); //this is necessary because the Initialize method of the packages is called AFTER a solution that contains a grammar-file has been opened, so the Solution.Opened event won't be reaised anymore RegisterSolution(); //checks periodically if files have changed (and rebuilds the library) RegisterForIdleTime(); // Add build event handlers DTE2 dte = (DTE2)GetService(typeof(DTE)); buildEvents = dte.Events.BuildEvents; buildEvents.OnBuildBegin += OnBuildBegin; buildEvents.OnBuildDone += OnBuildDone; //add solution events solutionEvents = dte.Events.SolutionEvents; solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(SolutionEvents_Opened); solutionEvents.BeforeClosing += new _dispSolutionEvents_BeforeClosingEventHandler(solutionEvents_BeforeClosing); solutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(solutionEvents_ProjectAdded); solutionEvents.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(solutionEvents_ProjectRemoved); // Create error provider errorListProvider = new ErrorListProvider(this); errorListProvider.ProviderGuid = GuidList.guidErrorProvider; errorListProvider.ProviderName = "Coco/R Error Provider"; //name doesn't matter, nobody else needs/uses it }
protected override void Dispose(bool disposing) { try { if (componentID != 0) { IOleComponentManager mgr = GetService(typeof(SOleComponentManager)) as IOleComponentManager; if (mgr != null) { mgr.FRevokeComponent(componentID); } componentID = 0; } if (null != libraryManager) { libraryManager.Dispose(); libraryManager = null; } } finally { base.Dispose(disposing); } }