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)); }
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)); }
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)); }
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))); }
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)); }
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)); }
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)); }
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)); }