Example #1
0
        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}");
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }