示例#1
0
        public void MissingOptionalPosition3()
        {
            var markup = "[|first|] {|x:second|}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Empty(positions);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }
示例#2
0
        public void MissingOptionalPosition2()
        {
            var markup = "[|first|] {|x:second|}";

            TestFileMarkupParser.GetPositionAndSpans(markup, out var output, out int?cursorPosition, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Null(cursorPosition);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, cursorPosition, spans));
        }
示例#3
0
        public void SinglePosition6()
        {
            var markup   = "first$$second";
            var expected = "firstsecond";

            TestFileMarkupParser.GetPositionAndSpans(markup, out var output, out int?cursorPosition, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(expected, output);
            Assert.Equal(markup.IndexOf("$$"), cursorPosition);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, cursorPosition, spans));
        }
示例#4
0
        public void SinglePosition2()
        {
            var markup   = "first$$second[||]";
            var expected = "firstsecond";

            TestFileMarkupParser.GetPositionAndSpan(markup, out var output, out var cursorPosition, out var span);
            Assert.Equal(expected, output);
            Assert.Equal(markup.IndexOf("$$"), cursorPosition);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, cursorPosition, ImmutableArray.Create(span)));
        }
示例#5
0
        public void SinglePosition1()
        {
            var markup   = "first$$second";
            var expected = "firstsecond";

            TestFileMarkupParser.GetPosition(markup, out var output, out var cursorPosition);
            Assert.Equal(expected, output);
            Assert.Equal(markup.IndexOf("$$"), cursorPosition);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, cursorPosition));
        }
示例#6
0
        public void MissingOptionalPosition1()
        {
            var markup = "[|first|] {|x:second|}";

            TestFileMarkupParser.GetPositionAndSpans(markup, out var output, out int?cursorPosition, out ImmutableArray <TextSpan> spans);
            Assert.Null(cursorPosition);

            // Test round-trip. In this case, named spans are ignored due to the API used for parsing the original
            // markup string.
            var equivalentMarkup = "[|first|] second";

            Assert.Equal(equivalentMarkup, TestFileMarkupParser.CreateTestFile(output, cursorPosition, spans));
        }
示例#7
0
        public void OverlappingSpans4A()
        {
            var markup = "{|x:first {|#0:seco|}nd|}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("x", out var xs));
            var x = Assert.Single(xs);

            Assert.Equal(TextSpan.FromBounds(0, 12), x);

            Assert.True(spans.TryGetValue("#0", out var ys));
            var y = Assert.Single(ys);

            Assert.Equal(TextSpan.FromBounds(6, 10), y);

            // Test round-trip
            Assert.Equal(markup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }
示例#8
0
        public void OverlappingSpans4C()
        {
            var markup = "{|x:first {|#0:seco|}nd|#0}";

            TestFileMarkupParser.GetPositionsAndSpans(markup, out var output, out ImmutableArray <int> positions, out ImmutableDictionary <string, ImmutableArray <TextSpan> > spans);
            Assert.Equal(2, spans.Count);

            Assert.True(spans.TryGetValue("x", out var xs));
            var x = Assert.Single(xs);

            Assert.Equal(TextSpan.FromBounds(0, 10), x);

            Assert.True(spans.TryGetValue("#0", out var ys));
            var y = Assert.Single(ys);

            Assert.Equal(TextSpan.FromBounds(6, 12), y);

            // Test round-trip
            // https://github.com/dotnet/roslyn-sdk/issues/505
            var unexpectedMarkup = "{|x:first {|#0:seco|}nd|}";

            Assert.Equal(unexpectedMarkup, TestFileMarkupParser.CreateTestFile(output, positions, spans));
        }