void DelayedInitialise() { //+ DTE EVENTS //DTEEvents.OnBeginShutdown += () => //{ // HasShutdownStarted = true; // if (OnBeginShutdown != null) // OnBeginShutdown(this, EventArgs.Empty); //}; //+ SOLUTION EVENTS SolutionEvents.Opened += () => { SafeExecute(() => { TryRegisterBuildEventsIfNeeded(); if (AfterSolutionOpened != null) AfterSolutionOpened(this, EventArgs.Empty); }); }; SolutionEvents.AfterClosing += () => { SafeExecute(() => { if (AfterSolutionClosed != null) AfterSolutionClosed(this, EventArgs.Empty); }); }; //+ DOCUMENT EVENTS //DocumentEvents.DocumentOpened += (document) => //{ // SafeExecute(() => // { // if (AfterDocumentOpened != null) // { // var documentInfo = new DocumentInfo(document.FullName, document.ProjectItem); // AfterDocumentOpened(this, new EventArgs<DocumentInfo>(documentInfo)); // } // }); //}; //DocumentEvents.DocumentOpening += (path, readOnly) => //{ // SafeExecute(() => // { // }); //}; //+ WINDOW EVENTS WindowEvents.WindowActivated += (gotFocus, lostFocus) => { SafeExecute(() => { if (AfterActiveDocumentChanged != null) { if (gotFocus != null && gotFocus.Document != null) { var document = gotFocus.Document; var args = new DocumentEventArgs(document.FullName, document.ProjectItem); AfterActiveDocumentChanged(this, args); } } }); }; //+ DEBUGGER EVENTS DebuggerEvents.OnEnterDesignMode += (reason) => { SafeExecute(() => { if (AfterDebuggerEnterDesignMode != null) AfterDebuggerEnterDesignMode(this, EventArgs.Empty); }); }; DebuggerEvents.OnEnterRunMode += (reason) => { SafeExecute(() => { if (AfterDebuggerEnterRunMode != null) AfterDebuggerEnterRunMode(this, EventArgs.Empty); }); }; DebuggerEvents.OnEnterBreakMode += DebuggerEvents_OnEnterBreakMode; //+ COMMAND EVENTS //CommandEvents.BeforeExecute += CommandEvents_BeforeExecute; }