// ------------------------------------------------------ /// <summary> /// Unhooks the specified delegates from the code model event sink. /// </summary> /// <param name="elementAdded"> /// A delegate that was previously registered to be called when an /// element is added to the code model. /// </param> /// <param name="elementChanged"> /// A delegate that was previously registered to be called when an /// element changes in the code model. /// </param> /// <param name="elementDeleted"> /// A delegate that was previously registered to be called when an /// element is deleted from the code model. /// </param> public void UnadviseCodeModelEvents( _dispCodeModelEvents_ElementAddedEventHandler elementAdded, _dispCodeModelEvents_ElementChangedEventHandler elementChanged, _dispCodeModelEvents_ElementDeletedEventHandler elementDeleted) { // This might be called as a consequence of closing the IDE, in // which case this would fail, so wrap it in a try/catch. try { DTE dte = (DTE)GetService(typeof(DTE)); Events2 events = (Events2)((DTE2)dte).Events; CodeModelEvents cmEvents = events.get_CodeModelEvents(null); if (cmEvents != null) { if (elementAdded != null) { cmEvents.ElementAdded -= elementAdded; } if (elementChanged != null) { cmEvents.ElementChanged -= elementChanged; } if (elementDeleted != null) { cmEvents.ElementDeleted -= elementDeleted; } } } catch (Exception) { } }
/// <summary> /// Registers for code model events. /// </summary> private void AdviseCodeModelEvents() { try { languageService.OnFileCodeModelChanged += OnFileCodeModelChanged; var dte2 = dte as DTE2; if (dte2 == null) { throw new NullReferenceException("dte2 is NULL"); } var events2 = dte2.Events as Events2; if (events2 == null) { throw new NullReferenceException("events2 is NULL"); } codeModelEvents = events2.get_CodeModelEvents(null); if (codeModelEvents != null) { codeModelEvents.ElementAdded += codeModelEvents_Added; codeModelEvents.ElementChanged += codeModelEvents_Changed; codeModelEvents.ElementDeleted += codeModelEvents_Deleted; } } catch (ArgumentException) { // Failed to get CodeModelEvents, this should not occur. SourceOutlineToolWindow.DisplayMessage(Resources.ErrorPrefix, "Failed to get Code Model events."); throw; } }
// ------------------------------------------------------ /// <summary> /// Hooks the specified delegates into the code model event sink. /// </summary> /// <param name="elementAdded"> /// A delegate to be called when an element is added to the code /// model. /// </param> /// <param name="elementChanged"> /// A delegate to be called when an element changes in the code model. /// </param> /// <param name="elementDeleted"> /// A delegate to be called when an element is deleted from the code /// model. /// </param> public void AdviseCodeModelEvents( _dispCodeModelEvents_ElementAddedEventHandler elementAdded, _dispCodeModelEvents_ElementChangedEventHandler elementChanged, _dispCodeModelEvents_ElementDeletedEventHandler elementDeleted) { DTE dte = (DTE)GetService(typeof(DTE)); Events2 events = (Events2)((DTE2)dte).Events; CodeModelEvents cmEvents = events.get_CodeModelEvents(null); if (cmEvents != null) { if (elementAdded != null) { cmEvents.ElementAdded += elementAdded; } if (elementChanged != null) { cmEvents.ElementChanged += elementChanged; } if (elementDeleted != null) { cmEvents.ElementDeleted += elementDeleted; } } }
/// <summary> /// Registers for code model events. /// </summary> private void AdviseCodeModelEvents() { try { EnvDTE80.DTE2 dte2 = _dte as EnvDTE80.DTE2; if (dte2 == null) { throw new NullReferenceException("dte2 is NULL"); } EnvDTE80.Events2 events2 = dte2.Events as EnvDTE80.Events2; if (events2 == null) { throw new NullReferenceException("events2 is NULL"); } _codeModelEvents = events2.get_CodeModelEvents(null); if (_codeModelEvents != null) { _codeModelEvents.ElementAdded += new _dispCodeModelEvents_ElementAddedEventHandler(codeModelEvents_Added); _codeModelEvents.ElementChanged += new _dispCodeModelEvents_ElementChangedEventHandler(codeModelEvents_Changed); _codeModelEvents.ElementDeleted += new _dispCodeModelEvents_ElementDeletedEventHandler(codeModelEvents_Deleted); } } catch (System.ArgumentException) { // Failed to get CodeModelEvents, this should not occur. Utils.DisplayMessage(Resources.ErrorPrefix, "Failed to get Code Model events."); throw; } }
public StepTaggerProvider() { if (_events2 != null) { return; } _events2 = GaugePackage.DTE.Events as Events2; _codeModelEvents = _events2.CodeModelEvents; _projectItemsEvents = _events2.ProjectItemsEvents; _documentEvents = _events2.DocumentEvents; _codeModelEvents.ElementAdded += element => RefreshUsages(); _codeModelEvents.ElementChanged += (element, change) => RefreshUsages(); _codeModelEvents.ElementDeleted += (parent, element) => RefreshUsages(); _projectItemsEvents.ItemAdded += item => RefreshUsages(); _projectItemsEvents.ItemRemoved += item => RefreshUsages(); _projectItemsEvents.ItemRenamed += (item, name) => RefreshUsages(); _documentEvents.DocumentSaved += document => { if (document.IsGaugeConceptFile() || document.IsGaugeSpecFile()) { RefreshUsages(); } }; }
public DteWithEvents(DTE dte) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2) dte.Events).DocumentEvents; BuildEvents = ((Events2) dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; }
public DteWithEvents(DTE dte) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2)dte.Events).DocumentEvents; BuildEvents = ((Events2)dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; }
public SolutionListener(IVsSolution solution, DTE2 dte) { if (solution != null) { solution.AdviseSolutionEvents(this, out cookie); } if (dte != null) { _dte = dte; _codeEvents = ((Events2)dte.Events).get_CodeModelEvents(); } }
public void Dispose() { ThreadHelper.ThrowIfNotOnUIThread(); if (_solutionEvents != null) { _solutionEvents.Renamed -= SolutionEvents_Renamed; _solutionEvents = null; } if (_documentEvents != null) { _documentEvents.DocumentOpened -= DocumentEvents_DocumentOpened; _documentEvents.DocumentClosing -= DocumentEvents_DocumentClosing; _documentEvents.DocumentSaved -= DocumentEvents_DocumentSaved; _documentEvents = null; } if (_codeModelEvents != null) { _codeModelEvents.ElementAdded -= CodeModelEvents_ElementAdded; _codeModelEvents.ElementChanged -= CodeModelEvents_ElementChanged; _codeModelEvents.ElementDeleted -= CodeModelEvents_ElementDeleted; _codeModelEvents = null; } if (_solutionCookie != 0) { var solution = _serviceProvider.GetService <IVsSolution, SVsSolution>(false); if (solution != null) { solution.UnadviseSolutionEvents(_solutionCookie); } } if (_docEventsCookie != 0) { var docEvents = _serviceProvider.GetService <IVsTrackProjectDocuments2, SVsTrackProjectDocuments>(false); if (docEvents != null) { docEvents.UnadviseTrackProjectDocumentsEvents(_docEventsCookie); } } if (_windowEventsCookie != 0) { var windowEvents = _serviceProvider.GetService <IVsRunningDocumentTable, SVsRunningDocumentTable>(false); if (windowEvents != null) { windowEvents.UnadviseRunningDocTableEvents(_windowEventsCookie); } } }
public DteWithEvents(DTE dte, IIdeTracer tracer) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2)dte.Events).DocumentEvents; BuildEvents = ((Events2)dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; SolutionEventsListener = new SolutionEventsListener(); FileChangeEventsListener = new FileChangeEventsListener(tracer); SolutionEvents.BeforeClosing += FileChangeEventsListener.StopListening; }
public DteWithEvents(DTE dte, IIdeTracer tracer) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2) dte.Events).DocumentEvents; BuildEvents = ((Events2) dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; SolutionEventsListener = new SolutionEventsListener(); FileChangeEventsListener = new FileChangeEventsListener(tracer); SolutionEvents.BeforeClosing += FileChangeEventsListener.StopListening; }
public Model(string _projName, Events2 _evs2) { projName = _projName; proj = GetProject(projName); if (proj != null) { vcCodeModel = (VCCodeModel)proj.CodeModel; } evs2 = _evs2; cmEvs = evs2.CodeModelEvents; //cmEvs.ElementChanged += OnElementChanged; //cmEvs.ElementDeleted += OnElementDeleted; //cmEvs.ElementAdded += OnElementAdded; }
public Project(Func <EnvDTE.Project> vsProjectFuncFunc) { _vsProjectFunc = vsProjectFuncFunc; _dte = Package.GetGlobalService(typeof(DTE)) as DTE; if (_events2 != null) { return; } _events2 = _dte.Events as Events2; _codeModelEvents = _events2.CodeModelEvents; _commandEvents = _events2.CommandEvents; _projectItemsEvents = _events2.ProjectItemsEvents; _documentEvents = _events2.DocumentEvents; _documentEvents.DocumentSaved += document => { if (document.IsGaugeConceptFile()) { RefreshImplementations(); } }; _projectItemsEvents.ItemAdded += projectItem => RefreshImplementations(); _projectItemsEvents.ItemRemoved += projectItem => RefreshImplementations(); _projectItemsEvents.ItemRenamed += (item, name) => RefreshImplementations(); _codeModelEvents.ElementAdded += element => RefreshImplementations(); _codeModelEvents.ElementChanged += (element, change) => RefreshImplementations(); _codeModelEvents.ElementDeleted += (parent, element) => RefreshImplementations(); _commandEvents.AfterExecute += (cmdId, id, customIn, customOut) => { if ((VSConstants.VSStd2KCmdID)id == VSConstants.VSStd2KCmdID.RENAME) { RefreshImplementations(); } }; }
private void Initialize() { if (_initialized) { return; } ThreadHelper.ThrowIfNotOnUIThread(); try { var dte = _shellProjectService.GetDTE() as DTE2; if (dte != null) { var events = dte.Events as Events2; _solutionEvents = events?.SolutionEvents; if (_solutionEvents != null) { _solutionEvents.Renamed += SolutionEvents_Renamed; } _documentEvents = events?.get_DocumentEvents(null); if (_documentEvents != null) { _documentEvents.DocumentOpened += DocumentEvents_DocumentOpened; _documentEvents.DocumentClosing += DocumentEvents_DocumentClosing; _documentEvents.DocumentSaved += DocumentEvents_DocumentSaved; } _codeModelEvents = events?.get_CodeModelEvents(null); if (_codeModelEvents != null) { _codeModelEvents.ElementAdded += CodeModelEvents_ElementAdded; _codeModelEvents.ElementChanged += CodeModelEvents_ElementChanged; _codeModelEvents.ElementDeleted += CodeModelEvents_ElementDeleted; } } var solution = _serviceProvider.GetService <IVsSolution, SVsSolution>(false); if (solution != null) { solution.AdviseSolutionEvents(this, out _solutionCookie); } var docEvents = _serviceProvider.GetService <IVsTrackProjectDocuments2, SVsTrackProjectDocuments>(false); if (docEvents != null) { docEvents.AdviseTrackProjectDocumentsEvents(this, out _docEventsCookie); } var windowEvents = _serviceProvider.GetService <IVsRunningDocumentTable, SVsRunningDocumentTable>(false); if (windowEvents != null) { windowEvents.AdviseRunningDocTableEvents(this, out _windowEventsCookie); } } finally { _initialized = true; } }
/// <summary> /// Registers for code model events. /// </summary> private void AdviseCodeModelEvents() { try { EnvDTE80.DTE2 dte2 = _dte as EnvDTE80.DTE2; if (dte2 == null) throw new NullReferenceException("dte2 is NULL"); EnvDTE80.Events2 events2 = dte2.Events as EnvDTE80.Events2; if (events2 == null) throw new NullReferenceException("events2 is NULL"); _codeModelEvents = events2.get_CodeModelEvents(null); if (_codeModelEvents != null) { _codeModelEvents.ElementAdded += new _dispCodeModelEvents_ElementAddedEventHandler(codeModelEvents_Added); _codeModelEvents.ElementChanged += new _dispCodeModelEvents_ElementChangedEventHandler(codeModelEvents_Changed); _codeModelEvents.ElementDeleted += new _dispCodeModelEvents_ElementDeletedEventHandler(codeModelEvents_Deleted); } } catch (System.ArgumentException) { // Failed to get CodeModelEvents, this should not occur. Utils.DisplayMessage(Resources.ErrorPrefix, "Failed to get Code Model events."); throw; } }
/// <summary> /// Registers for code model events. /// </summary> private void AdviseCodeModelEvents() { try { languageService.OnFileCodeModelChanged += OnFileCodeModelChanged; var dte2 = dte as DTE2; if (dte2 == null) throw new NullReferenceException("dte2 is NULL"); var events2 = dte2.Events as Events2; if (events2 == null) throw new NullReferenceException("events2 is NULL"); codeModelEvents = events2.get_CodeModelEvents(null); if (codeModelEvents != null) { codeModelEvents.ElementAdded += codeModelEvents_Added; codeModelEvents.ElementChanged += codeModelEvents_Changed; codeModelEvents.ElementDeleted += codeModelEvents_Deleted; } } catch (ArgumentException) { // Failed to get CodeModelEvents, this should not occur. SourceOutlineToolWindow.DisplayMessage(Resources.ErrorPrefix, "Failed to get Code Model events."); throw; } }