Exemplo n.º 1
0
                public void Empty()
                {
                    Create("hello world");
                    var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Line, _vimBuffer.LocalSettings.TabStop);

                    Assert.Equal(_textBuffer.GetLineRange(0), visualSpan.AsLine().LineRange);
                }
Exemplo n.º 2
0
                public void Empty()
                {
                    Create("hello world");
                    var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Character, _vimBuffer.LocalSettings.TabStop);

                    Assert.Equal(0, visualSpan.EditSpan.OverarchingSpan.Length);
                }
Exemplo n.º 3
0
        public void CreateForSelection_Line_Empty()
        {
            Create("hello world");
            var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Line);

            Assert.Equal(_textBuffer.GetLineRange(0), visualSpan.AsLine().Item);
        }
Exemplo n.º 4
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);
        }
Exemplo n.º 5
0
        public void CreateForSelection_Character_Empty()
        {
            Create("hello world");
            var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Character);

            Assert.Equal(0, visualSpan.EditSpan.OverarchingSpan.Length);
        }
Exemplo n.º 6
0
        public void CreateForSelectionPoints_Block_ForwardsMultipleLines()
        {
            Create("big cat", "big dog");
            var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, _textBuffer.GetPoint(1), _textBuffer.GetPointInLine(1, 3));
            var blockSpan  = new BlockSpan(_textBuffer.GetPoint(1), 2, 2);

            Assert.Equal(blockSpan, visualSpan.AsBlock().Item);
        }
Exemplo n.º 7
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)));
        }
Exemplo n.º 8
0
        public void CreateForSelectionPoints_Block_Backwards()
        {
            Create("big cat", "big dog");
            var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, _textBuffer.GetPoint(2), _textBuffer.GetPoint(0));
            var blockSpan  = new BlockSpan(_textBuffer.GetPoint(0), 2, 1);

            Assert.Equal(blockSpan, visualSpan.AsBlock().Item);
        }
Exemplo n.º 9
0
        public void CreateForSelection_Block_Empty()
        {
            Create("hello world");
            var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Block);
            var blockSpan  = new BlockSpan(_textBuffer.GetPoint(0), 0, 1);

            Assert.Equal(blockSpan, visualSpan.AsBlock().Item);
        }
Exemplo n.º 10
0
                public void Empty()
                {
                    Create("hello world");
                    var visualSpan = VisualSpan.CreateForSelection(_textView, VisualKind.Block, _vimBuffer.LocalSettings.TabStop);
                    var blockSpan  = new BlockSpan(_textBuffer.GetPoint(0), tabStop: _vimBuffer.LocalSettings.TabStop, spaces: 1, height: 1);

                    Assert.Equal(blockSpan, visualSpan.AsBlock().BlockSpan);
                }
Exemplo n.º 11
0
                public void Backwards()
                {
                    Create("big cat", "big dog");
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, _textBuffer.GetPoint(2), _textBuffer.GetPoint(0), _vimBuffer.LocalSettings.TabStop);
                    var blockSpan  = new BlockSpan(_textBuffer.GetPoint(0), _vimBuffer.LocalSettings.TabStop, 2, 1);

                    Assert.Equal(blockSpan, visualSpan.AsBlock().BlockSpan);
                }
Exemplo n.º 12
0
                public void ForwardsMultipleLines()
                {
                    Create("big cat", "big dog");
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, _textBuffer.GetPoint(1), _textBuffer.GetPointInLine(1, 3), _vimBuffer.LocalSettings.TabStop);
                    var blockSpan  = new BlockSpan(_textBuffer.GetPoint(1), _vimBuffer.LocalSettings.TabStop, 2, 2);

                    Assert.Equal(blockSpan, visualSpan.AsBlock().BlockSpan);
                }
Exemplo n.º 13
0
                public void SamePoint()
                {
                    Create("cat", "dog", "tree");
                    var point      = _textBuffer.GetLine(1).Start;
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Line, point, point, _vimBuffer.LocalSettings.TabStop);

                    Assert.Equal(_textBuffer.GetLineRange(1), visualSpan.AsLine().LineRange);
                }
Exemplo n.º 14
0
                public void EndOfSnapshot()
                {
                    Create("cat", "dog");
                    var point      = new SnapshotPoint(_textBuffer.CurrentSnapshot, _textBuffer.CurrentSnapshot.Length);
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Line, point, point, _vimBuffer.LocalSettings.TabStop);

                    Assert.Equal(1, visualSpan.AsLine().LineRange.LastLineNumber);
                }
Exemplo n.º 15
0
        public void CreateForSelectionPoints_Character_Empty()
        {
            Create("dog cat");
            var point      = _textBuffer.GetPoint(2);
            var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Character, point, point);

            Assert.Equal(point, visualSpan.AsCharacter().Item.Start);
            Assert.Equal(0, visualSpan.AsCharacter().Item.Length);
        }
Exemplo n.º 16
0
        public void CreateForSelectionPoints_Block_Empty()
        {
            Create("dog cat");
            var point      = _textBuffer.GetPoint(2);
            var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, point, point);
            var blockSpan  = new BlockSpan(point, 0, 1);

            Assert.Equal(blockSpan, visualSpan.AsBlock().Item);
        }
Exemplo n.º 17
0
                public void Empty()
                {
                    Create("dog cat");
                    var point      = _textBuffer.GetPoint(2);
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Block, point, point, _vimBuffer.LocalSettings.TabStop);
                    var blockSpan  = new BlockSpan(point, _vimBuffer.LocalSettings.TabStop, spaces: 1, height: 1);

                    Assert.Equal(blockSpan, visualSpan.AsBlock().BlockSpan);
                }
Exemplo n.º 18
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);
            }
Exemplo n.º 19
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());
        }
Exemplo n.º 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);
        }
Exemplo n.º 21
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));
        }
Exemplo n.º 22
0
                public void Empty()
                {
                    Create("dog cat");
                    var point      = _textBuffer.GetPoint(2);
                    var visualSpan = VisualSpan.CreateForSelectionPoints(VisualKind.Character, point, point, _vimBuffer.LocalSettings.TabStop);

                    Assert.Equal(point, visualSpan.AsCharacter().CharacterSpan.Start);
                    Assert.Equal(0, visualSpan.AsCharacter().CharacterSpan.Length);
                }
Exemplo n.º 23
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);
            }
Exemplo n.º 24
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());
        }
Exemplo n.º 25
0
                public void IncludeLineBreak()
                {
                    Create("cat", "dog");
                    _textView.Selection.Select(_textBuffer.GetPoint(0), _textBuffer.GetPoint(5));
                    var visualSpan    = VisualSpan.CreateForSelection(_textView, VisualKind.Character, tabStop: 4);
                    var characterSpan = visualSpan.AsCharacter().Item;

                    Assert.True(characterSpan.IncludeLastLineLineBreak);
                    Assert.Equal(1, characterSpan.LineCount);
                }
Exemplo n.º 26
0
                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());
                }
Exemplo n.º 27
0
                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);
                }
Exemplo n.º 28
0
                public void Forward()
                {
                    Create("big dog", "big cat", "big tree", "big fish");
                    var lineRange  = _textBuffer.GetLineRange(1);
                    var visualSpan = VisualSpan.NewLine(lineRange);

                    visualSpan.Select(_textView, SearchPath.Forward);
                    Assert.False(_textView.Selection.IsReversed);
                    Assert.Equal(lineRange.ExtentIncludingLineBreak, _textView.GetSelectionSpan());
                }
Exemplo n.º 29
0
                public void Simple()
                {
                    Create("big dog", "big cat", "big tree", "big fish");
                    var blockSpan  = _vimBuffer.GetBlockSpan(1, 2, 0, 2);
                    var visualSpan = VisualSpan.NewBlock(blockSpan);

                    visualSpan.Select(_textView, SearchPath.Forward);
                    Assert.Equal(blockSpan, _vimBuffer.GetSelectionBlockSpan());
                    Assert.Equal(TextSelectionMode.Box, _textView.Selection.Mode);
                }
Exemplo n.º 30
0
                public void EndsInEmptyLineCase()
                {
                    Create("cat", "", "dog");
                    _textView.Selection.Select(_textBuffer.GetPoint(0), _textBuffer.GetPoint(6));
                    Assert.Equal(1, _textView.Selection.StreamSelectionSpan.End.Position.GetContainingLine().LineNumber);
                    var visualSpan    = VisualSpan.CreateForSelection(_textView, VisualKind.Character, tabStop: 4);
                    var characterSpan = visualSpan.AsCharacter().Item;

                    Assert.Equal(2, characterSpan.LineCount);
                    Assert.True(characterSpan.IncludeLastLineLineBreak);
                }
Exemplo n.º 31
0
Arquivo: VimUtil.cs Projeto: otf/VsVim
 internal static CommandRunData CreateCommandRunData(
     Command command,
     Register register,
     int? count = null,
     MotionRunData motionRunData = null,
     VisualSpan visualRunData = null)
 {
     var countOpt = count != null ? FSharpOption.Create(count.Value) : FSharpOption<int>.None;
     var motion = motionRunData != null
         ? FSharpOption.Create(motionRunData)
         : FSharpOption<MotionRunData>.None;
     var visual = visualRunData != null
         ? FSharpOption.Create(visualRunData)
         : FSharpOption<VisualSpan>.None;
     return new CommandRunData(
         command,
         register,
         countOpt,
         motion,
         visual);
 }
Exemplo n.º 32
0
 private CommandRunData CreateCommand(
     Func<FSharpOption<int>, Register, CommandResult> func = null,
     KeyInputSet name = null,
     CommandFlags? flags = null,
     int? count = 0,
     MotionRunData motionRunData = null,
     VisualSpan visualRunData = null)
 {
     name = name ?? KeyInputSet.NewOneKeyInput(KeyInputUtil.CharToKeyInput('c'));
     var flagsRaw = flags ?? CommandFlags.None;
     var countRaw = count.HasValue ? FSharpOption.Create(count.Value) : FSharpOption<int>.None;
     var funcRaw = func.ToFSharpFunc();
     var cmd = Command.NewSimpleCommand(
         name,
         flagsRaw,
         func.ToFSharpFunc());
     return new CommandRunData(
         cmd,
         new Register('c'),
         countRaw,
         motionRunData != null ? FSharpOption.Create(motionRunData) : FSharpOption<MotionRunData>.None,
         visualRunData != null ? FSharpOption.Create(visualRunData) : FSharpOption<VisualSpan>.None);
 }
Exemplo n.º 33
0
 protected void RunVisualCommand(VisualCommand command, VisualSpan visualSpan)
 {
     var commandData = CommandData.Default;
     _commandUtil.RunVisualCommand(command, commandData, visualSpan);
 }