/// <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 initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { base.Initialize(); dte = GetService(typeof (DTE)) as DTE; if (null == dte) { throw new ArgumentNullException(nameof(dte)); } var pane = GetService(typeof(SVsGeneralOutputWindowPane)) as IVsOutputWindowPane; if (null == pane) { throw new ArgumentNullException(nameof(pane)); } output = new VisualStudioOutputPaneProvider(pane); formatDocumentEvent = dte.Events.CommandEvents[VsStd2KCmdIdGuid, (int) VSConstants.VSStd2KCmdID.FORMATDOCUMENT]; saveProjectItemEvent = dte.Events.CommandEvents[VsStd97CmdIdGuid, (int) VSConstants.VSStd97CmdID.SaveProjectItem]; factory = new CommandFactory(dte, output); formatDocumentEvent.BeforeExecute += OnFormatDocumentBeforeExecute; saveProjectItemEvent.BeforeExecute += OnSaveProjectItemBeforeExecute; }
protected override void Dispose(bool dispose) { try { if (dispose) { saveProjectItemEvent.BeforeExecute -= OnSaveProjectItemBeforeExecute; formatDocumentEvent.BeforeExecute -= OnFormatDocumentBeforeExecute; dte = null; factory = null; GC.SuppressFinalize(this); } } finally { base.Dispose(dispose); } }