Exemple #1
0
        public LoggingTagger(ITextView view, ITextBuffer sourceBuffer, ITextSearchService textSearchService,
                             ITextStructureNavigator textStructureNavigator,
                             IToolTipProviderFactory toolTipProviderFactory)
        {
            _sourceBuffer           = sourceBuffer;
            _view                   = view;
            _textSearchService      = textSearchService;
            _textStructureNavigator = textStructureNavigator;
            // Subscribe to both change events in the view - any time the view is updated
            // or the caret is moved, we refresh our list of highlighted words.
            _view.Caret.PositionChanged += CaretPositionChanged;
            _view.LayoutChanged         += ViewLayoutChanged;
            _toolTipProvider             = toolTipProviderFactory.GetToolTipProvider(_view);
            if (_view == ToolWindow1Control.CurrentTextViewer)
            {
                UpdateAtCaretPosition(_view.Caret.ContainingTextViewLine);
            }

            // TODO: syncronized access.
            if (LoggingTaggerCollection == null)
            {
                LoggingTaggerCollection = new Dictionary <ITextView, LoggingTagger>();
            }
            if (!LoggingTaggerCollection.ContainsKey(view))
            {
                LoggingTaggerCollection.Add(view, this);
            }
            else
            {
                LoggingTaggerCollection[view] = this;
            }
        }
Exemple #2
0
 public ErrorGlyphMouseProcessor(IWpfTextViewHost textViewHost, IWpfTextViewMargin textViewMargin, ITagAggregator <ErrorGlyphTag> tagAggregator, IToolTipProvider toolTipProvider)
 {
     _textViewHost    = textViewHost;
     _textViewMargin  = textViewMargin;
     _tagAggregator   = tagAggregator;
     _toolTipProvider = toolTipProvider;
 }
Exemple #3
0
        public IMouseProcessor GetAssociatedMouseProcessor(IWpfTextViewHost wpfTextViewHost, IWpfTextViewMargin margin)
        {
            ITagAggregator <ErrorGlyphTag> tagAggregator = AggregatorService.CreateTagAggregator <ErrorGlyphTag>(wpfTextViewHost.TextView.TextBuffer);
            IToolTipProvider tooltipProvider             = ToolTipProviderFactory.GetToolTipProvider(wpfTextViewHost.TextView);

            return(new ErrorGlyphMouseProcessor(wpfTextViewHost, margin, tagAggregator, tooltipProvider));
        }
Exemple #4
0
 string IToolTipProvider.GetToolTip(TreeNodeAdv node, NodeControl nodeControl)
 {
     if (nodeControl is IToolTipProvider)
     {
         IToolTipProvider controlProvider = nodeControl as IToolTipProvider;
         return(controlProvider.GetToolTip(node, nodeControl));
     }
     return(null);
 }
        public ImagePreviewToolTipMouseProcessor(IWpfTextView view, ITextStructureNavigator navigator,
                                                 IToolTipProviderFactory toolTipProviderFactory, ITextDocument textDocument)
        {
            this.spanSearcher    = new StringSpanSearcher(view, navigator);
            this.toolTipProvider = toolTipProviderFactory.GetToolTipProvider(view);
            this.textDocument    = textDocument;

            this.shownSpan = null;
        }
Exemple #6
0
        public string GetToolTip()
        {
            IToolTipProvider toolTipProvider = this.Parent as IToolTipProvider;

            if (toolTipProvider != null)
            {
                return(toolTipProvider.GetToolTip());
            }
            return(string.Empty);
        }
 /// <summary>
 /// Create a new instance of <seealso cref="StackdriverTagger"/> class.
 /// </summary>
 /// <param name="view">The text view on which the tag shows.</param>
 /// <param name="sourceBuffer">The source buffer with the text view.</param>
 /// <param name="toolTipProviderFactory">The tool tip provider. <seealso cref="IToolTipProviderFactory"/>. </param>
 public StackdriverTagger(ITextView view, ITextBuffer sourceBuffer, IToolTipProviderFactory toolTipProviderFactory)
 {
     _sourceBuffer             = sourceBuffer;
     _view                     = view;
     _view.LayoutChanged      += OnViewLayoutChanged;
     _view.LostAggregateFocus += OnLostAggregateFocus;
     _toolTipProvider          = toolTipProviderFactory.GetToolTipProvider(_view);
     if (_view == ActiveTagData.Current?.TextView)
     {
         ShowOrUpdateToolTip();
     }
 }
Exemple #8
0
        internal CustomTooltipMouseProcessor(IWpfTextView view, IToolTipProviderFactory
                                             toolTipProviderFactory, ITextStructureNavigator navigatorService, IClassifier classifier)
        {
            this._view             = view;
            this._toolTipProvider  = toolTipProviderFactory.GetToolTipProvider(this._view);
            this._navigatorService = navigatorService;
            this._classifier       = classifier;

            this._systemFonts = Fonts.SystemFontFamilies;

            this.IsToolTipShown = false;
        }
        public override void PreprocessMouseMove(MouseEventArgs e)
        {
            // Look for regex lines to show the tooltip/hand cursor
            foreach (ITextViewLine line in this.view.TextViewLines)
            {
                RegexLineData regexLineData = RegexLineData.CreateFromTextViewLine(this.view, line);

                // Check if the regex line contains a new Regex statement
                if (IsValid(regexLineData))
                {
                    // Get the pattern parameter
                    SnapshotSpan?expression = regexLineData.Expression;

                    if (expression.HasValue)
                    {
                        // Get the marker geometry of the pattern parameter
                        Geometry expressionGeometry = view.TextViewLines.GetMarkerGeometry(expression.Value);
                        if (expressionGeometry != null && expressionGeometry.Bounds.Contains(GetPointRelativeToView(e)))
                        {
                            e.Handled = true;

                            if (!IsToolTipShown)
                            {
                                IsToolTipShown = true;
                                IToolTipProvider toolTipProvider = this.toolTipProviderFactory.GetToolTipProvider(this.view);

                                // Show the tooltip
                                toolTipProvider.ShowToolTip(expression.Value.Snapshot.CreateTrackingSpan(
                                                                expression.Value.Span,
                                                                SpanTrackingMode.EdgeExclusive), "Ctrl+Click to open the regex editor",
                                                            PopupStyles.DismissOnMouseLeaveText);
                            }
                            // If the ctrl key is pressed change the cursor to hand
                            if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                            {
                                e.MouseDevice.OverrideCursor = Cursors.Hand;
                            }
                            return;
                        }
                    }
                }
            }

            IsToolTipShown = false;
            e.MouseDevice.OverrideCursor = null;
        }