private async void WindowEvents_WindowActivated(Window gotFocus, Window lostFocus) { // Wire up reference for Caret events var textViewHost = GetCurrentViewHost(); if (textViewHost != null) { _control.TextView = textViewHost.TextView; textViewHost.TextView.Caret.PositionChanged += Caret_PositionChanged; if (Settings.Default.ShowHistoryIndicators) { textViewHost.TextView.TextBuffer.ChangedLowPriority += TextBuffer_ChangedLowPriority; } // Subscribe to Outlining events var outliningManagerService = OutliningHelper.GetOutliningManagerService(Package as IServiceProvider); var outliningManager = OutliningHelper.GetOutliningManager(outliningManagerService, GetCurrentViewHost().TextView); if (outliningManager != null && outliningManagerService != null) { _control.OutliningManagerService = outliningManagerService; outliningManager.RegionsExpanded -= OutliningManager_RegionsExpanded; outliningManager.RegionsExpanded += OutliningManager_RegionsExpanded; outliningManager.RegionsCollapsed -= OutliningManager_RegionsCollapsed; outliningManager.RegionsCollapsed += OutliningManager_RegionsCollapsed; } } await UpdateDocumentAsync(gotFocus, gotFocus != lostFocus); }
public static IWpfTextViewMargin CreateMargin(IWpfTextViewHost wpfTextViewHost, VisualStudioWorkspace visualStudioWorkspace, IServiceProvider serviceProvider, MarginSideEnum side) { if (Settings.Default.MarginSide != side) { return(null); } System.Windows.Threading.Dispatcher.CurrentDispatcher.VerifyAccess(); var dte = (DTE)serviceProvider.GetService(typeof(DTE)); var outliningManagerService = OutliningHelper.GetOutliningManagerService(serviceProvider); var codeNav = new CodeNavMargin(wpfTextViewHost, dte, outliningManagerService, visualStudioWorkspace, side); return(codeNav); }