public CodeNavMargin(IWpfTextViewHost textViewHost, DTE dte, IOutliningManager outliningManager, VisualStudioWorkspace workspace, MarginSideEnum side) { // Wire up references for the event handlers in RegisterEvents _dte = dte; _textView = textViewHost.TextView; _window = GetWindow(textViewHost, dte); _outliningManager = outliningManager; _workspace = workspace; MarginSide = side; // If we can not find the window we belong to we can not do anything if (_window == null) { return; } // Add the view/content to the margin area _codeNavGrid = CreateGrid(textViewHost); _codeNavColumn = _codeNavGrid.ColumnDefinitions[Settings.Default.MarginSide == MarginSideEnum.Left ? 0 : 2]; Children.Add(_codeNavGrid); RegisterEvents(); LogHelper.Log($"CodeNav initialized for {_window.Caption}"); }
public CodeNavMargin(IWpfTextViewHost textViewHost, DTE dte, IOutliningManagerService outliningManagerService, VisualStudioWorkspace workspace, MarginSideEnum side) { // Wire up references for the event handlers in RegisterEvents _dte = dte; _textView = textViewHost.TextView; _window = GetWindow(textViewHost, dte); _outliningManagerService = outliningManagerService; _outliningManager = OutliningHelper.GetOutliningManager(outliningManagerService, _textView); _workspace = workspace; MarginSide = side; // If we can not find the window we belong to we can not do anything if (_window == null) { return; } // Add the view/content to the margin area if (side == MarginSideEnum.Top) { _codeNavGrid = CreateGridTop(textViewHost); } else { _codeNavGrid = CreateGrid(textViewHost); _codeNavColumn = _codeNavGrid.ColumnDefinitions[Settings.Default.MarginSide == MarginSideEnum.Left ? 0 : 2]; } Children.Add(_codeNavGrid); System.Windows.Threading.Dispatcher.CurrentDispatcher.VerifyAccess(); RegisterEvents(); UpdateSettings(); }
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); }