示例#1
0
            public void TryCreateLineNegative()
            {
                Create("cat");
                var column = SnapshotColumn.GetForLineAndColumnNumber(_textBuffer.CurrentSnapshot, -1, -1, FSharpOption.False);

                Assert.True(column.IsNone());
            }
示例#2
0
            public void TryCreateColumnSimple()
            {
                Create("cat");
                var column = SnapshotColumn.GetForLineAndColumnNumber(_textBuffer.CurrentSnapshot, lineNumber: 0, columnNumber: 1, includeLineBreak: FSharpOption.False);

                Assert.True(column.IsSome(x => x.IsCharacter('a')));
            }
示例#3
0
            public void AtEnd()
            {
                Create("dog", "cat");
                var column = SnapshotOverlapColumn.GetColumnForSpaces(_textBuffer.GetLine(1), spaces: 3, tabStop: 4);

                AssertColumn(column, expected: SnapshotColumn.GetEndColumn(_textBuffer.CurrentSnapshot), spacesBefore: 0, spacesAfter: 0);
            }
示例#4
0
            public void ToLineBreak()
            {
                Create("cat", "dog");
                var column = new SnapshotColumn(_textBuffer.GetPointInLine(line: 0, column: 2));
                var next   = column.TryAddInLine(1);

                Assert.True(next.IsNone());
            }
示例#5
0
            public void TrySubtractInSameLineStartOfBuffer()
            {
                Create("cat", "dog");
                var column   = new SnapshotColumn(_textBuffer.GetStartPoint());
                var previous = column.TrySubtractInLine(1);

                Assert.True(previous.IsNone());
            }
示例#6
0
            public void ToLineBreakWhenAllowed()
            {
                Create("cat", "dog");
                var column = new SnapshotColumn(_textBuffer.GetPointInLine(line: 0, column: 2));
                var next   = column.TryAddInLine(1, includeLineBreak: FSharpOption.True);

                Assert.True(next.IsSome(x => x.IsLineBreak));
            }
示例#7
0
            public void SecondPositionOfLineBreak()
            {
                Create("cat", "dog");
                var point  = _textBuffer.GetPoint(4);
                var column = new SnapshotColumn(point);

                Assert.True(column.StartPoint.Position == 3);
            }
示例#8
0
 public void SubtractBeforeLine()
 {
     Create("cat", "dog", "fish");
     var original = new SnapshotColumn(_textBuffer.GetLine(1).Start);
     var column = original.Subtract(3);
     Assert.Equal(2, column.Column);
     Assert.Equal(0, column.LineNumber);
 }
示例#9
0
            public void EmptyLineAtEnd()
            {
                Create("cat", "");
                var point  = _textBuffer.GetPointInLine(line: 1, column: 0);
                var column = new SnapshotColumn(point);

                Assert.True(column.StartPoint.Position == _textBuffer.CurrentSnapshot.Length);
            }
示例#10
0
            public void EndPoint()
            {
                Create("cat");
                var point  = _textBuffer.GetEndPoint();
                var column = new SnapshotColumn(point);

                Assert.True(column.StartPoint.Position == _textBuffer.CurrentSnapshot.Length);
            }
示例#11
0
 public void AddNextLine()
 {
     Create("cat", "dog", "fish");
     var original = new SnapshotColumn(_textBuffer.GetPoint(0));
     var column = original.Add(5);
     Assert.Equal(0, column.Column);
     Assert.Equal(1, column.LineNumber);
 }
示例#12
0
 public void SubtractSameLine()
 {
     Create("cat", "dog", "fish");
     var original = new SnapshotColumn(_textBuffer.GetPoint(1));
     var column = original.Subtract(1);
     Assert.Equal(0, column.Column);
     Assert.Equal(0, column.LineNumber);
 }
示例#13
0
            public void AddNextLine(string lineBreakText)
            {
                CreateRaw("cat" + lineBreakText + "dog" + lineBreakText + "fish");
                var original = new SnapshotColumn(_textBuffer.GetPoint(0));
                var column   = original.Add(4);

                Assert.Equal(0, column.ColumnNumber);
                Assert.Equal(1, column.LineNumber);
            }
示例#14
0
 public void PointSimple()
 {
     Create("cat", "dog");
     var point = _textBuffer.GetPoint(1);
     var column = new SnapshotColumn(point);
     Assert.Equal(0, column.LineNumber);
     Assert.Equal(1, column.Column);
     Assert.False(column.IsInsideLineBreak);
 }
示例#15
0
            public void SubtractBeforeLine()
            {
                Create("cat", "dog", "fish");
                var original = new SnapshotColumn(_textBuffer.GetLine(1).Start);
                var column   = original.Subtract(3);

                Assert.Equal(2, column.Column);
                Assert.Equal(0, column.LineNumber);
            }
示例#16
0
            public void AddNextLine()
            {
                Create("cat", "dog", "fish");
                var original = new SnapshotColumn(_textBuffer.GetPoint(0));
                var column   = original.Add(5);

                Assert.Equal(0, column.Column);
                Assert.Equal(1, column.LineNumber);
            }
示例#17
0
            public void SubtractSameLine()
            {
                Create("cat", "dog", "fish");
                var original = new SnapshotColumn(_textBuffer.GetPoint(1));
                var column   = original.Subtract(1);

                Assert.Equal(0, column.Column);
                Assert.Equal(0, column.LineNumber);
            }
示例#18
0
            public void EndPoint()
            {
                Create("cat");
                var point  = _textBuffer.GetEndPoint();
                var column = new SnapshotColumn(point);

                Assert.True(column.IsEndColumn);
                Assert.False(column.IsLineBreak);
            }
示例#19
0
            public void SubtractBeforeLine(string lineBreakText)
            {
                CreateRaw("cat" + lineBreakText + "dog" + lineBreakText + "fish");
                var original = new SnapshotColumn(_textBuffer.GetLine(1).Start);
                var column   = original.Subtract(2);

                Assert.Equal(2, column.ColumnNumber);
                Assert.Equal(0, column.LineNumber);
            }
示例#20
0
            public void EmptyLineIsLineBreak()
            {
                Create("", "dog");
                var column = SnapshotColumn.GetForLineAndColumnNumber(_textBuffer.CurrentSnapshot, lineNumber: 0, columnNumber: 0, includeLineBreak: FSharpOption.False);

                Assert.True(column.IsNone());
                column = SnapshotColumn.GetForLineAndColumnNumber(_textBuffer.CurrentSnapshot, lineNumber: 0, columnNumber: 0, includeLineBreak: FSharpOption.True);
                Assert.True(column.IsSome(x => x.IsLineBreak));
            }
示例#21
0
            public void PointSimple()
            {
                Create("cat", "dog");
                var point  = _textBuffer.GetPoint(1);
                var column = new SnapshotColumn(point);

                Assert.Equal(0, column.LineNumber);
                Assert.Equal(1, column.ColumnNumber);
                Assert.False(column.IsLineBreak);
            }
示例#22
0
            public void TrySubtractInSameLineBetweenLines()
            {
                Create("cat", "dog");
                var column   = new SnapshotColumn(_textBuffer.GetPointInLine(line: 1, column: 1));
                var previous = column.TrySubtractInLine(1);

                Assert.True(previous.IsSome(c => c.IsCharacter('d')));
                previous = previous.Value.TrySubtractInLine(1);
                Assert.True(previous.IsNone());
            }
示例#23
0
            public void EndPoint()
            {
                Create("cat", "dog");
                var column = new SnapshotColumn(_textBuffer.GetPointInLine(line: 1, column: 2));
                var next   = column.TryAddInLine(1, includeLineBreak: FSharpOption.True);

                Assert.True(next.IsSome(x => x.IsEndColumn));

                next = column.TryAddInLine(1, includeLineBreak: FSharpOption.False);
                Assert.True(next.IsSome(x => x.IsEndColumn));
            }
示例#24
0
            public void PointInsideLineBreak()
            {
                Create("cat", "dog");
                var point  = _textBuffer.GetPoint(_textBuffer.GetLine(0).End);
                var column = new SnapshotColumn(point);

                Assert.Equal(0, column.LineNumber);
                Assert.Equal(3, column.ColumnNumber);
                Assert.True(column.IsLineBreak);
                Assert.Equal("cat", column.Line.GetText());
            }
示例#25
0
            public void AddManyLines(string lineBreakText)
            {
                var letters = CharUtil.LettersLower.Select(x => x.ToString()).ToArray();
                var content = string.Join(lineBreakText, letters);

                CreateRaw(content);
                var point = new SnapshotColumn(_textBuffer.GetPoint(0));

                for (var i = 0; i < letters.Length; i++)
                {
                    Assert.Equal(letters[i], point.GetText());
                    if (i + 1 < letters.Length)
                    {
                        point = point.Add(1);
                        Assert.True(point.IsLineBreak);
                        point = point.Add(1);
                    }
                }
            }
示例#26
0
            public void SubtractManyLines(string lineBreakText)
            {
                var letters = CharUtil.LettersLower.Select(x => x.ToString()).ToArray();
                var content = string.Join(lineBreakText, letters);

                CreateRaw(content);
                var i     = letters.Length - 2;
                var point = new SnapshotColumn(_textBuffer.GetEndPoint());

                point = point.Subtract(2);
                while (!point.IsStartColumn)
                {
                    Assert.True(point.IsLineBreak);
                    point = point.Subtract(1);
                    Assert.Equal(letters[i], point.GetText());

                    if (!point.IsStartColumn)
                    {
                        point = point.Subtract(1);
                        i--;
                    }
                }
            }
示例#27
0
 public void PointInsideLineBreak()
 {
     Create("cat", "dog");
     var point = _textBuffer.GetPoint(_textBuffer.GetLine(0).End);
     var column = new SnapshotColumn(point);
     Assert.Equal(0, column.LineNumber);
     Assert.Equal(3, column.Column);
     Assert.True(column.IsInsideLineBreak);
     Assert.Equal("cat", column.Line.GetText());
 }