示例#1
0
        /// <summary>
        /// Change the selection to be the specified SnapshotSpan value and update the caret to be on the
        /// last included point in the SnapshotSpan.
        /// </summary>
        public static void SelectAndMoveCaret(this ITextView textView, SnapshotSpan span)
        {
            var characterSpan   = new CharacterSpan(span);
            var visualSelection = VisualSelection.CreateForward(VisualSpan.NewCharacter(characterSpan));

            visualSelection.SelectAndMoveCaret(textView);
        }
示例#2
0
        /// <summary>
        /// Change the selection to be the specified SnapshotSpan value and update the caret to be on the
        /// last included point in the SnapshotSpan.
        /// </summary>
        public static void SelectAndUpdateCaret(this ITextView textView, SnapshotSpan span)
        {
            var characterSpan = CharacterSpan.CreateForSpan(span);

            CommonUtil.SelectAndUpdateCaret(
                textView,
                VisualSelection.CreateForVisualSpan(VisualSpan.NewCharacter(characterSpan)));
        }
示例#3
0
            public void SetLocalMark_ReadOnlyMark()
            {
                Create("hello", "world");
                var visualSpan = VisualSpan.NewCharacter(new CharacterSpan(_textBuffer.GetPoint(0), 1, 2));

                _vimTextBuffer.LastVisualSelection = FSharpOption.Create(VisualSelection.CreateForward(visualSpan));
                Assert.False(_vimTextBuffer.SetLocalMark(LocalMark.LastSelectionStart, 0, 4));
                Assert.Equal(0, _vimTextBuffer.GetLocalMark(LocalMark.LastSelectionStart).Value.Position.Position);
            }
示例#4
0
        public void AdjustForSelectionKind_Character_Forward()
        {
            Create("cat dog bear");
            var characterSpan   = CharacterSpan.CreateForSpan(_textBuffer.GetSpan(0, 4));
            var visualSpan      = VisualSpan.NewCharacter(characterSpan);
            var visualSelection = VisualSelection.CreateForward(visualSpan);

            Assert.Equal("cat", visualSelection.AdjustForSelectionKind(SelectionKind.Exclusive).VisualSpan.EditSpan.OverarchingSpan.GetText());
        }
                public void Forward()
                {
                    Create("big dog", "big cat", "big tree", "big fish");
                    var characterSpan = new CharacterSpan(_textBuffer.GetSpan(1, 3));
                    var visualSpan    = VisualSpan.NewCharacter(characterSpan);

                    visualSpan.Select(_textView, SearchPath.Forward);
                    Assert.False(_textView.Selection.IsReversed);
                    Assert.Equal(characterSpan.Span, _textView.GetSelectionSpan());
                }
                public void ForwardIntoLineBreak()
                {
                    Create("cat", "dog");
                    var characterSpan = new CharacterSpan(_textBuffer.GetSpan(0, 4));
                    var visualSpan    = VisualSpan.NewCharacter(characterSpan);

                    visualSpan.Select(_textView, SearchPath.Forward);
                    Assert.Equal(4, _textView.Selection.StreamSelectionSpan.Length);
                    Assert.False(_textView.Selection.IsReversed);
                }
示例#7
0
        public void Select_Character_Backwards()
        {
            Create("big dog", "big cat", "big tree", "big fish");
            var characterSpan = CharacterSpan.CreateForSpan(_textBuffer.GetSpan(1, 3));
            var visualSpan    = VisualSpan.NewCharacter(characterSpan);

            visualSpan.Select(_textView, Path.Backward);
            Assert.True(_textView.Selection.IsReversed);
            Assert.Equal(characterSpan.Span, _textView.GetSelectionSpan());
        }
示例#8
0
            public void NegativeLastLineOffset1()
            {
                var textBuffer    = CreateTextBuffer("cat", "dog");
                var characterSpan = new CharacterSpan(
                    textBuffer.GetPointInLine(line: 0, column: 2),
                    textBuffer.GetPointInLine(line: 1, column: 1));
                var sel = StoredVisualSelection.CreateFromVisualSpan(VisualSpan.NewCharacter(characterSpan));

                Assert.Equal(StoredVisualSelection.NewCharacterLine(lineCount: 2, lastLineMaxOffset: -2), sel);
            }
示例#9
0
                public void BackwardIntoLineBreak()
                {
                    Create("cat", "dog");
                    var characterSpan = new CharacterSpan(_textBuffer.GetSpan(0, 4));
                    var visualSpan    = VisualSpan.NewCharacter(characterSpan);

                    visualSpan.Select(_textView, SearchPath.Backward);
                    TestableSynchronizationContext.RunAll();
                    Assert.Equal(4, _textView.Selection.StreamSelectionSpan.Length);
                    Assert.True(_textView.Selection.IsReversed);
                }
示例#10
0
                public void Backward()
                {
                    Create("big dog", "big cat", "big tree", "big fish");
                    var characterSpan = new CharacterSpan(_textBuffer.GetSpan(1, 3));
                    var visualSpan    = VisualSpan.NewCharacter(characterSpan);

                    visualSpan.Select(_textView, SearchPath.Backward);
                    TestableSynchronizationContext.RunAll();
                    Assert.True(_textView.Selection.IsReversed);
                    Assert.Equal(characterSpan.Span, _textView.GetSelectionSpan());
                }
        public void VisualSpan_Character_EditBeforeMultiLine()
        {
            var textBuffer         = CreateTextBuffer("cat", "dog");
            var visualSpan         = VisualSpan.NewCharacter(new CharacterSpan(textBuffer.GetPoint(0), 2, 1));
            var trackingVisualSpan = _bufferTrackingService.CreateVisualSpan(visualSpan);

            textBuffer.Insert(0, "bat ");
            var newVisualSpan = VisualSpan.NewCharacter(new CharacterSpan(textBuffer.GetPoint(0), 2, 1));

            Assert.True(trackingVisualSpan.VisualSpan.IsSome());
            Assert.Equal(newVisualSpan, trackingVisualSpan.VisualSpan.Value);
        }
示例#12
0
                public void Virtual(string line1)
                {
                    Create(line1, "");
                    var point1        = _textBuffer.GetVirtualPointInLine(0, 0);
                    var point2        = _textBuffer.GetVirtualPointInLine(0, 4);
                    var span          = new VirtualSnapshotSpan(point1, point2);
                    var characterSpan = new CharacterSpan(span, true);
                    var visualSpan    = VisualSpan.NewCharacter(characterSpan);

                    visualSpan.Select(_textView, SearchPath.Forward);
                    DoEvents();
                    Assert.Equal(point1, _textView.Selection.Start);
                    Assert.Equal(point2, _textView.Selection.End);
                }
示例#13
0
 internal static VisualSpan CreateVisualSpanCharacter(SnapshotSpan span)
 {
     return(VisualSpan.NewCharacter(new CharacterSpan(span)));
 }