private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            if (_currentFocusedImages.Count > 0)
            {
                foreach (var image in _currentFocusedImages)
                    image.Opacity = IdleOpacity;

                _currentFocusedImages.Clear();
            }

            var lineUnderCaret = _view.Caret.ContainingTextViewLine;
            var lineContent = lineUnderCaret.Snapshot.GetText(lineUnderCaret.Start.Position, lineUnderCaret.Length);

            _renderedImages.ForEach(element => element.Opacity = IdleOpacity);

            //Only handle links.
            if (lineContent.Contains("http://"))
            {
                //Extract urls from line
                Regex linkParser = new Regex(@"\b(?:https?://|www\.)\S+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);

                foreach (Match match in linkParser.Matches(lineContent))
                {
                    var url = match.Value;
                    foreach (var image in _renderedImages.Where(r => r.Source.AbsoluteUri == url))
                    {
                        //It is now critical that I paste this URL:
                        //http://33.media.tumblr.com/9623d4ab00c74f027e6cd1e23e1d5126/tumblr_inline_nshd2hgJNy1raprkq_500.gif

                        image.Opacity = FocusedOpacity;
                        _currentFocusedImages.Add(image);
                    }
                }
            }
        }
Пример #2
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     NodeProvider provider;
     if (!e.TextView.TextBuffer.Properties.TryGetProperty(typeof(NodeProvider), out provider))
         return;
     Highlight(provider, e.NewPosition);
 }
 private void StoreCurrentNode(object sender, CaretPositionChangedEventArgs e)
 {
     if(e?.TextView == null)
     {
         return;
     }
     var textView = e.TextView;
     var caretPosition = new CaretPositionLineInfo(textView, textView.Caret.Position.BufferPosition);
     StoreCurrentNode(textView.TextSnapshot.GetText(), caretPosition.LineNumber, caretPosition.LinePosition);
 }
Пример #4
0
        private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            var currentCursorLine = CursorLineNumber;

            if (lastCursorLine != currentCursorLine)
            {
                lastCursorLine = currentCursorLine;
                ApplyNumbers();
            }
        }
		private void OnCaretPositionChanged (object sender, CaretPositionChangedEventArgs e)
		{
			double pos = e.TextView.Caret.ContainingTextViewLine.TextTop;

			if (_lastPos != pos)
			{
				_lastPos = pos;
				DrawLineNumbers();
			}
		}
Пример #6
0
 private void AddAdornments(CaretPositionChangedEventArgs e)
 {
     // Use the brace matchers to highlight bounds
     if (e.TextView.TextViewLines != null)
     {
         foreach (var spans in braceMatcher.GetBraceMatchingSpans(e.NewPosition.BufferPosition))
         {
             HighlightBounds(e.TextView.TextBuffer, spans.Item1);
             HighlightBounds(e.TextView.TextBuffer, spans.Item2);
         }
     }
 }
Пример #7
0
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e) {
     if (_document != null && _document.EditorTree != null) {
         SnapshotPoint? bufferPoint = REditorDocument.MapCaretPositionFromView(_textView);
         if (bufferPoint.HasValue) {
             var node = _document.EditorTree.AstRoot.GetNodeOfTypeFromPosition<TokenNode>(bufferPoint.Value);
             if (node != _lastNode) {
                 _lastNode = node;
                 SuggestedActionsChanged?.Invoke(this, new EventArgs());
             }
         }
     }
 }
 public void SetText(object sender, CaretPositionChangedEventArgs e)
 {
     try
     {
         var xml = _repository.GetSelected();
         var writer = _writerProvider();
         var xpath = writer.Write(xml);
         SetText(xpath);
     }
     catch(Exception ex)
     {
         SetText(ex.Message);
     }
 }
Пример #9
0
        private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
            var session = _curSession;
            if (session == null || session.IsDismissed) {
                return;
            }

            var snapshot = _textView.TextSnapshot;
            var caret = e.NewPosition.Point.GetPoint(snapshot, PositionAffinity.Successor);
            if (caret.HasValue && session.ApplicableToSpan.GetSpan(snapshot).Contains(caret.Value)) {
                return;
            }

            session.Dismiss();
            Interlocked.CompareExchange(ref _curSession, null, session);
        }
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
			if (e.NewPosition.VirtualSpaces > 0)
				completionSession.Dismiss();
			else {
				var pos = e.NewPosition.BufferPosition;
				var span = completionSession.SelectedCompletionSet?.ApplicableTo.GetSpan(pos.Snapshot);
				if (span == null || pos < minimumCaretPosition || pos < span.Value.Start || pos > span.Value.End)
					completionSession.Dismiss();
				else if (pos == span.Value.Start.Position) {
					// This matches what VS does. It prevents you from accidentally committing
					// something when you select the current input text by pressing Shift+Home
					// and then pressing eg. " or some other commit-character.
					var curr = completionSession.SelectedCompletionSet.SelectionStatus;
					completionSession.SelectedCompletionSet.SelectionStatus = new CompletionSelectionStatus(curr.Completion, isSelected: false, isUnique: curr.IsUnique);
				}
			}
		}
        /// <summary>
        /// The caret has been moved by the user. Update line transformations to reflect new position
        /// </summary>
        private void OnCaretChanged(object sender, CaretPositionChangedEventArgs args)
        {
            //Did the caret line number change?
            SnapshotPoint oldPosition = args.OldPosition.BufferPosition;
            SnapshotPoint newPosition = args.NewPosition.BufferPosition;

            if (_textView.TextSnapshot.GetLineNumberFromPosition(newPosition) != _textView.TextSnapshot.GetLineNumberFromPosition(oldPosition))
            {
                //Yes. Is the caret on a line that has been formatted by the view?
                ITextViewLine line = _textView.Caret.ContainingTextViewLine;
                if (line.VisibilityState != VisibilityState.Unattached)
                {
                    //Yes. Force the view to redraw so that (top of) the caret line has exactly the same position.
                    _textView.DisplayTextLineContainingBufferPosition(line.Start, line.Top, ViewRelativePosition.Top);
                }
            }
        }
        private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs args)
        {
            try
            {
                //Don't waste time computing anything if we can't show it.
                if (!MyToolWindow.MyControl.IsWindowVisible)
                    return;
                if (MyToolWindow.MyControl.IgnoreNextCaretPositionChange)
                {
                    MyToolWindow.MyControl.IgnoreNextCaretPositionChange = false;
                    return;
                }

                var caret = (ITextCaret)sender;
                int position = args.NewPosition.BufferPosition.Position;

                //We roll the dice on an OOM exception... :(
                string rawText = caret.ContainingTextViewLine.Snapshot.GetText();
                string textBeforeCaret = rawText.Substring(0, position);

                int lineNumber = getLineNumberAboveCaret(textBeforeCaret, position);
                rawText = rawText.Replace("\r\n", "\n");

                using (TypeScriptProcessor tsProcessor = new TypeScriptProcessor())
                {
                    var root = tsProcessor.ParseFileAndGetSyntaxRoot(rawText);
                    MyToolWindow.MyControl.UpdateWithSyntaxRoot(root, position - lineNumber);
                    System.Diagnostics.Debug.WriteLine(root.Kind);
                }
            }
            catch(Exception e)
            {
                var error = e.ToString();
                System.Diagnostics.Debug.WriteLine(error);
            }
        }
Пример #13
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     int linecount = _textView.TextSnapshot.LineCount;
     //throw new NotImplementedException();
     //System.Diagnostics.Trace.WriteLine("CaretPostitionChanged:" + _textView.TextSnapshot.GetLineNumberFromPosition(_textView.Caret.Position.BufferPosition));
     ITextSnapshotLine ssl = e.NewPosition.BufferPosition.GetContainingLine();
     
 }
Пример #14
0
 private static void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
     e.TextView.Properties.RemoveProperty(_executedLastLine);
     e.TextView.Caret.PositionChanged -= Caret_PositionChanged;
 }
Пример #15
0
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
			if (session == null)
				return;
			// PERF: retriggering is very slow
			if (ShouldRetrigger(e))
				TriggerSession(new SignatureHelpTriggerInfo(SignatureHelpTriggerReason.RetriggerCommand));
		}
Пример #16
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => CloseToolTip();
Пример #17
0
 private void CaretOnPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateGlyph();
 }
Пример #18
0
		/// <summary>
		/// Raised when the caret position changes.
		/// </summary>
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
		{
			try
			{
				UpdateCaret(e.NewPosition.VirtualBufferPosition);
			}
			catch (Exception ex)
			{
				Errors.Log(ex);
			}
		}
Пример #19
0
		private void CaretOnPositionChanged(object sender, CaretPositionChangedEventArgs e)
		{
			_savedCaretColumn = null;
		}
Пример #20
0
        private void OnTextViewCaretPositionChanged(object?sender, CaretPositionChangedEventArgs e)
        {
            Contract.ThrowIfFalse(_threadingContext.JoinableTaskContext.IsOnMainThread);

            QueueUpdateForCaretPosition(e.NewPosition);
        }
Пример #21
0
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     CaretMoved?.Invoke(this, e);
 }
Пример #22
0
 void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     Update();
 }
 private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateClassificationLabel();
     UpdateContentTypeLabel();
     UpdateContentSelectionLabel();
 }
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateSelectedNavigationTargets();
 }
Пример #25
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => session.Dismiss();
Пример #26
0
 private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => _control.HighlightCurrentItem();
Пример #27
0
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
			if (!isIncrementalSearchCaretMove)
				CancelIncrementalSearch();
		}
Пример #28
0
 private void CaretOnPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     _savedCaretColumn = null;
 }
Пример #29
0
 private void CaretOnPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateSession();
 }
Пример #30
0
 private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateAtCaretPosition(_view.Caret.Position);
 }
Пример #31
0
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => session.Dismiss();
Пример #32
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     ClearTags();
 }
Пример #33
0
 private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateClassificationLabel();
     UpdateContentTypeLabel();
     UpdateContentSelectionLabel();
 }
Пример #34
0
 public CaretPositionLineInfo(CaretPositionChangedEventArgs e)
     : this(e.TextView, e.NewPosition.BufferPosition.Position)
 {
 }
Пример #35
0
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => PositionLineElement();
Пример #36
0
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateCaretPosition(e.NewPosition);
 }
Пример #37
0
        private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            RemoveExistingHighlights();

            UpdateBraceMatching(e.NewPosition.BufferPosition.Position);
        }
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     this.RaiseChanged();
 }
 void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e) {
     using (Logger.LogBlock(nameof(OnCaretPositionChanged))) {
         _dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => SetActiveSelection(TaskComboIndex)));
         #if ShowMemberCombobox
         _dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => SetActiveSelection(MemberComboIndex)));
         #endif
     }
 }
Пример #40
0
 private void CaretOnPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     InvalidateTags();
 }
Пример #41
0
		bool ShouldRetrigger(CaretPositionChangedEventArgs e) {
			// This case is handled by the command handler
			if (e.OldPosition.BufferPosition.Snapshot != e.NewPosition.BufferPosition.Snapshot)
				return false;

			if (IsRetriggerCharacter(e.OldPosition) || IsRetriggerCharacter(e.NewPosition))
				return true;

			if (e.OldPosition.VirtualBufferPosition.IsInVirtualSpace != e.NewPosition.VirtualBufferPosition.IsInVirtualSpace)
				return true;
			if (e.OldPosition.VirtualSpaces > 0)
				return false;
			var newPos = e.NewPosition.BufferPosition;
			var oldPos = e.OldPosition.BufferPosition;
			int diff = Math.Abs(oldPos.Position - newPos.Position);
			return diff > 1;
		}
Пример #42
0
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateSelectedNavigationTargets();
 }
Пример #43
0
 private static void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     e.TextView.Properties.RemoveProperty(_executedLastLine);
     e.TextView.Caret.PositionChanged -= Caret_PositionChanged;
 }
        void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            // If caret moves outside of the text tracking span, consider text final
            var position = _textView.Caret.Position.BufferPosition;

            if (!CurrentSpan.Contains(position) || position == CurrentSpan.Start)
            {
                EndTracking();
            }
        }
Пример #45
0
 private void Caret_PositionChanged(object source, CaretPositionChangedEventArgs e)
 {
     // update all adornments when caret position is changed
     RemoveAllAdornments(e.TextView.TextBuffer);
     AddAdornments(e);
 }
Пример #46
0
 public CaretPositionChangedSubject(IWpfTextView wpfTextView, object sender, CaretPositionChangedEventArgs e)
 {
     WpfTextView = wpfTextView;
     Sender      = sender;
     EventArgs   = e;
 }
Пример #47
0
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => PositionLineElement();
Пример #48
0
 private void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     System.Windows.Threading.Dispatcher.CurrentDispatcher.VerifyAccess();
     _control.HighlightCurrentItem();
 }
            private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
            {
                // make sure language buffer exist
                if (CurrentLanguageBuffer == null)
                {
                    return;
                }

                var caretPoint = e.NewPosition.BufferPosition;

                // make sure caret is on the right line
                // 1. changes are on virtual space
                if (e.NewPosition.BufferPosition == e.OldPosition.BufferPosition)
                {
                    return;
                }

                // 2. caret is at the end of the surface line
                if (caretPoint != caretPoint.GetContainingLine().End)
                {
                    return;
                }

                // 3. subject line has length == 0
                var point = e.NewPosition.Point.GetInsertionPoint(b => b == CurrentLanguageBuffer);
                if (!point.HasValue)
                {
                    return;
                }

                var line = point.Value.GetContainingLine();
                if (point.Value != line.End || line.Length != 0)
                {
                    return;
                }

                try
                {
                    // detach event handler
                    TextView.Caret.PositionChanged -= CaretPositionChanged;

                    IndentCurrentLine(caretPoint);
                }
                finally
                {
                    // attach event handler
                    TextView.Caret.PositionChanged += CaretPositionChanged;
                }
            }
Пример #50
0
 void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     UpdateAtCaretPosition(e.NewPosition);
 }
 void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) => wpfTextView.QueueSpaceReservationStackRefresh();
Пример #52
0
 private async void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     await InvalidateTags(_textView.TextSnapshot, CancellationToken.None);
 }
Пример #53
0
		void Caret_PositionChanged(object sender, CaretPositionChangedEventArgs e) {
			if (!isIncrementalSearchCaretMove)
				CancelIncrementalSearch();
		}
Пример #54
0
 void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     // Try to get the word, unless Clear
     SynchronousUpdate(new NormalizedSnapshotSpanCollection());
     return;
 }
Пример #55
0
 void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     client.UpdateCursor(e.NewPosition.BufferPosition.Position);
 }
Пример #56
0
        private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            int newPosition = e.NewPosition.BufferPosition.Position;

            List <KeyValuePair <int, int> > changes = new List <KeyValuePair <int, int> >();

            lock (_navigationsLock) {
                var cur = _navigations;
                for (int level = 0; level < _curSelection.Length; level++)
                {
                    if (cur == null)
                    {
                        // no valid children, we'll invalidate these...
                        changes.Add(new KeyValuePair <int, int>(_curSelection[level], -1));
                        continue;
                    }

                    bool found = false;
                    if (cur.Children != null)
                    {
                        for (int i = 0; i < cur.Children.Length; i++)
                        {
                            if (newPosition >= cur.Children[i].Span.Start && newPosition <= cur.Children[i].Span.End)
                            {
                                changes.Add(new KeyValuePair <int, int>(_curSelection[level], i));
                                _curSelection[level] = i;
                                cur   = cur.Children[i];
                                found = true;
                                break;
                            }
                        }
                    }

                    if (!found)
                    {
                        // continue processing to update the subselections...
                        cur = null;
                        changes.Add(new KeyValuePair <int, int>(_curSelection[level], -1));
                        _curSelection[level] = -1;
                    }
                }
            }

            for (int i = 0; i < changes.Count; i++)
            {
                var change   = changes[i];
                var oldValue = change.Key;
                var newValue = change.Value;

                if (_dropDownBar != null && oldValue != newValue)
                {
                    if (oldValue == -1 || newValue == -1)
                    {
                        // we've selected something new, we need to refresh the combo to
                        // to remove the grayed out entry
                        _dropDownBar.RefreshCombo(i, newValue);
                    }
                    else
                    {
                        // changing from one top-level to another, just update the selection
                        _dropDownBar.SetCurrentSelection(i, newValue);
                    }
                }
            }
        }
Пример #57
0
        private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            RemoveExistingHighlights();

            UpdateBraceMatching(e.NewPosition.BufferPosition.Position);
        }
 private void OnCaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     // For the caret, we will wait for a pause before trying to update
     updaterCaret.Stop();
     updaterCaret.Start();
 }
Пример #59
0
        private void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
        {
            int newPosition = e.NewPosition.BufferPosition.Position;

            var topLevel = _topLevelEntries;
            int curTopLevel = _curTopLevelIndex;

            if (curTopLevel != -1 && curTopLevel < topLevel.Count) {
                if (newPosition >= topLevel[curTopLevel].Start.Index && newPosition <= topLevel[curTopLevel].End.Index) {
                    UpdateNestedComboSelection(newPosition);
                } else {
                    FindActiveTopLevelComboSelection(newPosition, topLevel);
                }
            } else {
                FindActiveTopLevelComboSelection(newPosition, topLevel);
            }
        }
Пример #60
0
 void CaretPositionChanged(object sender, CaretPositionChangedEventArgs e)
 {
     SelectTopLevelItemForPosition(e.NewPosition.BufferPosition.Position);
 }