Example #1
0
                public void Backwards()
                {
                    Create("cats dogs");
                    var visualSelection = VisualSelection.CreateForPoints(VisualKind.Character, _textBuffer.GetPoint(3), _textBuffer.GetPoint(1), tabStop: 4);

                    Assert.Equal("ats", visualSelection.VisualSpan.EditSpan.OverarchingSpan.GetText());
                }
Example #2
0
                public void Backwards()
                {
                    Create("cats dogs");
                    var visualSelection = VisualSelection.CreateForPoints(VisualKind.Line, _textBuffer.GetPoint(3), _textBuffer.GetPoint(1), tabStop: 4);

                    Assert.Equal(_textBuffer.GetLineRange(0), visualSelection.AsLine().Item1);
                }
Example #3
0
        public void CreateForPoints_Block_BackwardSeveralLines()
        {
            Create("big cat", "big dog");
            var visualSelection = VisualSelection.CreateForPoints(VisualKind.Block, _textBuffer.GetPoint(2), _textBuffer.GetPointInLine(1, 1));

            Assert.Equal(_textBuffer.GetBlockSpan(1, 2, 0, 2), visualSelection.AsBlock().Item1);
        }
Example #4
0
                public void SelectionInclusive()
                {
                    Create("hello world");
                    var visualSelection = VisualSelection.CreateInitial(VisualKind.Character, _textBuffer.GetPoint(0), 4, SelectionKind.Inclusive);

                    Assert.Equal(1, visualSelection.AsCharacter().Item1.Length);
                }
Example #5
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   = CharacterSpan.CreateForSpan(span);
            var visualSelection = VisualSelection.CreateForward(VisualSpan.NewCharacter(characterSpan));

            visualSelection.SelectAndMoveCaret(textView);
        }
Example #6
0
        public void CreateForPoints_Block_Backwards()
        {
            Create("cats dogs");
            var visualSelection = VisualSelection.CreateForPoints(VisualKind.Block, _textBuffer.GetPoint(3), _textBuffer.GetPoint(1));

            Assert.Equal(_textBuffer.GetSpan(1, 3), visualSelection.AsBlock().Item1.BlockSpans.Head);
        }
Example #7
0
                public void SelectionExclusive()
                {
                    Create("hello world");
                    var visualSelection = VisualSelection.CreateInitial(VisualKind.Character, _textBuffer.GetVirtualPoint(0), 4, SelectionKind.Exclusive, false);

                    Assert.Equal(0, visualSelection.AsCharacter().CharacterSpan.Length);
                }
Example #8
0
                public void CaretOnBlankLine(bool useVirtualSpace)
                {
                    Create("cats", "", "dogs", "");
                    var visualSelection = VisualSelection.CreateForVirtualPoints(VisualKind.Line, _textBuffer.GetVirtualPoint(0), _textBuffer.GetVirtualPointInLine(1, 0), tabStop: 4, useVirtualSpace);

                    Assert.Equal(_textBuffer.GetLineRange(0, 1), visualSelection.AsLine().Item1);
                }
Example #9
0
                public void CaretAtStart()
                {
                    Create("cat", "dog", "bear");
                    var visualSpan = VisualSelection.CreateForPoints(VisualKind.Line, _textBuffer.GetPoint(0), caretPoint: _textBuffer.GetPointInLine(1, 0), tabStop: 4);

                    Assert.Equal(_textBuffer.GetLineRange(0, 1), visualSpan.AsLine().Item1);
                }
Example #10
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)));
        }
Example #11
0
        public void GetCaretPoint_Block_TopRight()
        {
            Create("cats", "dogs", "fish");
            var blockSpan       = _textBuffer.GetBlockSpan(1, 2, 0, 2);
            var visualSelection = VisualSelection.NewBlock(blockSpan, BlockCaretLocation.TopRight);

            Assert.Equal(_textBuffer.GetPoint(2), visualSelection.GetCaretPoint(SelectionKind.Inclusive));
        }
Example #12
0
        public void GetCaretPoint_Block_BottomRight()
        {
            Create("big dog", "big cat", "big tree", "big fish");
            var blockSpan       = _textBuffer.GetBlockSpan(1, 1, 0, 2);
            var visualSelection = VisualSelection.NewBlock(blockSpan, BlockCaretLocation.BottomRight);

            Assert.Equal(_textView.GetPointInLine(1, 1), visualSelection.GetCaretPoint(SelectionKind.Inclusive));
        }
Example #13
0
                public void InLineBreakForwardDeep()
                {
                    Create("cat", "dog");
                    var visualSelection = VisualSelection.NewCharacter(
                        new CharacterSpan(_textBuffer.GetPoint(0), 1, 5),
                        SearchPath.Forward);

                    Assert.Equal(4, visualSelection.GetCaretPoint(SelectionKind.Inclusive));
                }
Example #14
0
                public void Forward()
                {
                    Create("cats", "dogs");
                    var visualSelection = VisualSelection.NewCharacter(
                        new CharacterSpan(_textBuffer.GetSpan(0, 2)),
                        SearchPath.Forward);

                    Assert.Equal(_textBuffer.GetPoint(1), visualSelection.GetCaretPoint(SelectionKind.Inclusive));
                }
Example #15
0
                public void ForwardIntoLineBreak()
                {
                    Create("cat", "dog");
                    var visualSelection = VisualSelection.CreateForPoints(VisualKind.Character, _textBuffer.GetPoint(0), _textBuffer.GetPoint(3), tabStop: 4);
                    var character       = visualSelection.AsCharacter();

                    Assert.True(character.CharacterSpan.IncludeLastLineLineBreak);
                    Assert.Equal(SearchPath.Forward, character.SearchPath);
                }
Example #16
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);
            }
Example #17
0
        public void AdjustForSelectionKind_Block_SingleColumnExclusive()
        {
            Create("cats", "dogs", "trees");
            var blockSpan       = _textBuffer.GetBlockSpan(1, 1, 0, 2);
            var visualSpan      = VisualSpan.NewBlock(blockSpan);
            var visualSelection = VisualSelection.CreateForward(visualSpan);

            Assert.Equal(visualSelection, visualSelection.AdjustForSelectionKind(SelectionKind.Exclusive));
        }
Example #18
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());
        }
Example #19
0
        public void GetCaretPoint_Character_EmptyLastLine()
        {
            Create("cat", "", "dog");
            var visualSelection = VisualSelection.NewCharacter(
                new CharacterSpan(_textBuffer.GetPoint(0), 2, 1),
                Path.Forward);

            Assert.Equal(_textBuffer.GetLine(1).Start, visualSelection.GetCaretPoint(SelectionKind.Inclusive));
        }
Example #20
0
        public void CreateForVisualSpan_Block()
        {
            Create("cat", "dog");
            var visualSpan      = VisualSpan.NewBlock(_textView.GetBlockSpan(0, 2, 0, 2));
            var visualSelection = VisualSelection.CreateForward(visualSpan);

            Assert.Equal(_textView.GetLine(1).Start.Add(1), visualSelection.GetCaretPoint(SelectionKind.Inclusive));
            Assert.Equal(visualSpan, visualSelection.VisualSpan);
        }
Example #21
0
                public void ForwardIntoLineBreak2()
                {
                    Create("cat", "dog");
                    var visualSelection = VisualSelection.CreateForPoints(VisualKind.Character, _textBuffer.GetPoint(0), _textBuffer.GetPoint(4));
                    var character       = visualSelection.AsCharacter();

                    Assert.True(character.Item1.IncludeLastLineLineBreak);
                    Assert.Equal(Path.Forward, character.Item2);
                }
Example #22
0
        public void GetCaretPoint_Character_Backward()
        {
            Create("cats", "dogs");
            var visualSelection = VisualSelection.NewCharacter(
                CharacterSpan.CreateForSpan(_textBuffer.GetSpan(0, 2)),
                Path.Backward);

            Assert.Equal(_textBuffer.GetPoint(0), visualSelection.GetCaretPoint(SelectionKind.Inclusive));
        }
Example #23
0
                public void InLineBreakBackward()
                {
                    Create("cat", "dog");
                    var visualSelection = VisualSelection.NewCharacter(
                        new CharacterSpan(_textBuffer.GetPoint(0), 1, 4),
                        Path.Backward);

                    Assert.Equal(0, visualSelection.GetCaretPoint(SelectionKind.Inclusive));
                }
Example #24
0
        public void CaretPoint_Character_Backward()
        {
            Create("cats", "dogs");
            var visualSelection = VisualSelection.NewCharacter(
                CharacterSpan.CreateForSpan(_textBuffer.GetSpan(0, 2)),
                false);

            Assert.AreEqual(_textBuffer.GetPoint(0), visualSelection.CaretPoint);
        }
Example #25
0
        private void EnterMode(SnapshotSpan span)
        {
            var characterSpan   = CharacterSpan.CreateForSpan(span);
            var visualSelection = VisualSelection.NewCharacter(characterSpan, true);

            CommonUtil.SelectAndUpdateCaret(_textView, visualSelection);
            Assert.IsFalse(_context.IsEmpty);
            _context.RunAll();
            Assert.IsTrue(_context.IsEmpty);
        }
Example #26
0
                public void BackwardsInlcudeAnchor()
                {
                    Create("cats dogs");
                    var visualSelection = VisualSelection.CreateForPoints(VisualKind.Character, _textBuffer.GetPoint(3), _textBuffer.GetPoint(0));
                    var characterSpan   = visualSelection.AsCharacter().Item1;

                    Assert.Equal(0, characterSpan.Start.Position);
                    Assert.Equal(3, characterSpan.Last.Value.Position);
                    Assert.Equal(4, characterSpan.End.Position);
                }
Example #27
0
                public void VirtualSelectionInclusive()
                {
                    Create("hello world");
                    var virtualPoint    = _textBuffer.GetVirtualPointInLine(0, 20);
                    var visualSelection = VisualSelection.CreateInitial(VisualKind.Character,
                                                                        virtualPoint, 4, SelectionKind.Inclusive, true);

                    Assert.Equal(virtualPoint, visualSelection.AsCharacter().CharacterSpan.VirtualStart);
                    Assert.Equal(1, visualSelection.AsCharacter().CharacterSpan.VirtualLength);
                }
Example #28
0
        public void InitialVisualSelection_Line()
        {
            Create("dogs", "cats", "fish");

            var lineRange       = _textView.GetLineRange(0, 1);
            var visualSelection = VisualSelection.NewLine(lineRange, true, 1);

            _buffer.SwitchMode(ModeKind.VisualLine, ModeArgument.NewInitialVisualSelection(visualSelection));
            _context.RunAll();
            Assert.AreEqual(visualSelection, VisualSelection.CreateForSelection(_textView, VisualKind.Line));
        }
Example #29
0
        public void InitialVisualSelection_Block()
        {
            Create("dogs", "cats", "fish");

            var blockSpan       = _textView.GetBlockSpan(1, 2, 0, 2);
            var visualSelection = VisualSelection.NewBlock(blockSpan, BlockCaretLocation.BottomLeft);

            _buffer.SwitchMode(ModeKind.VisualBlock, ModeArgument.NewInitialVisualSelection(visualSelection));
            _context.RunAll();
            Assert.AreEqual(visualSelection, VisualSelection.CreateForSelection(_textView, VisualKind.Block));
        }
Example #30
0
        public void InitialVisualSelection_Character()
        {
            Create("dogs", "cats");

            var visualSpan      = VimUtil.CreateVisualSpanCharacter(_textBuffer.GetSpan(1, 2));
            var visualSelection = VisualSelection.CreateForVisualSpan(visualSpan);

            _buffer.SwitchMode(ModeKind.VisualCharacter, ModeArgument.NewInitialVisualSelection(visualSelection));
            _context.RunAll();
            Assert.AreEqual(visualSelection, VisualSelection.CreateForSelection(_textView, VisualKind.Character));
        }