Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,136 @@ public void SwitchExpression_WithMarkupInside_WithLessThan()
""");
}

[Fact]
public void GitConflictMarker_InMarkup()
{
ParseDocumentTest("""
<div>
<<<<<<< HEAD
<p>Current changes</p>
=======
<p>Incoming changes</p>
>>>>>>> feature-branch
</div>
""");
}

[Fact]
public void GitConflictMarker_InCodeBlock()
{
ParseDocumentTest("""
@{
<<<<<<< HEAD
var x = 1;
=======
var x = 2;
>>>>>>> feature-branch
}
""");
}

[Fact]
public void GitConflictMarker_InExpression()
{
ParseDocumentTest("""
@(
<<<<<<< HEAD
someValue
=======
otherValue
>>>>>>> feature-branch
)
""");
}

[Fact]
public void GitConflictMarker_MixedWithRazor()
{
ParseDocumentTest("""
@if (true)
{
<<<<<<< HEAD
<p>@currentValue</p>
=======
<p>@incomingValue</p>
>>>>>>> feature-branch
}
""");
}

[Fact]
public void GitConflictMarker_StartMarkerOnly()
{
ParseDocumentTest("""
<div>
<<<<<<< HEAD
<p>Unresolved conflict</p>
</div>
""");
}

[Fact]
public void GitConflictMarker_WithDividerOnly()
{
ParseDocumentTest("""
<div>
<<<<<<< HEAD
<p>Current changes</p>
=======
<p>Missing end marker</p>
</div>
""");
}

[Fact]
public void GitConflictMarker_AtDocumentStart()
{
ParseDocumentTest("""
<<<<<<< HEAD
<p>Current</p>
=======
<p>Incoming</p>
>>>>>>> main
""");
}

[Fact]
public void GitConflictMarker_InImplicitExpression()
{
ParseDocumentTest("""
<p>@<<<<<<< HEAD</p>
""");
}


[Fact]
public void GitConflictMarker_Malformed_Trailing()
{
ParseDocumentTest("""
@{
<<<<<<< HEAD var x = 0;
var x = 1;
======= var x = 3;
var x = 2;
>>>>>>> feature-branch var x = 4;
}
""");
}

[Fact]
public void GitConflictMarker_Malformed_Leading()
{
ParseDocumentTest("""
@{
var x = 0; <<<<<<< HEAD
var x = 1;
var x = 3; =======
var x = 2;
var x = 4; >>>>>>> feature-branch
}
""");
}

private void RunRazorCommentBetweenClausesTest(string preComment, string postComment, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any)
{
ParseDocumentTest(preComment + "@* Foo *@ @* Bar *@" + postComment);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Markup span at (0:0,0 [1] ) - Parent: Tag block at (0:0,0 [1] )
Markup span at (1:0,1 [1] ) - Parent: Tag block at (1:0,1 [1] )
Markup span at (2:0,2 [1] ) - Parent: Tag block at (2:0,2 [1] )
Markup span at (3:0,3 [1] ) - Parent: Tag block at (3:0,3 [1] )
Markup span at (4:0,4 [1] ) - Parent: Tag block at (4:0,4 [1] )
Markup span at (5:0,5 [1] ) - Parent: Tag block at (5:0,5 [1] )
Markup span at (6:0,6 [1] ) - Parent: Tag block at (6:0,6 [8] )
Markup span at (7:0,7 [5] ) - Parent: Markup block at (7:0,7 [5] )
Markup span at (12:0,12 [2] ) - Parent: Tag block at (6:0,6 [8] )
Markup span at (14:1,0 [3] ) - Parent: Tag block at (14:1,0 [3] )
Markup span at (17:1,3 [7] ) - Parent: Markup block at (0:0,0 [68] )
Markup span at (24:1,10 [4] ) - Parent: Tag block at (24:1,10 [4] )
Markup span at (28:1,14 [11] ) - Parent: Markup block at (0:0,0 [68] )
Markup span at (39:3,0 [3] ) - Parent: Tag block at (39:3,0 [3] )
Markup span at (42:3,3 [8] ) - Parent: Markup block at (0:0,0 [68] )
Markup span at (50:3,11 [4] ) - Parent: Tag block at (50:3,11 [4] )
Markup span at (54:3,15 [14] ) - Parent: Markup block at (0:0,0 [68] )
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
RazorDocument - [0..68)::68 - [<<<<<<< HEADLF<p>Current</p>LF=======LF<p>Incoming</p>LF>>>>>>> main]
MarkupBlock - [0..68)::68
MarkupElement - [0..1)::1
MarkupStartTag - [0..1)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [1..2)::1
MarkupStartTag - [1..2)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [2..3)::1
MarkupStartTag - [2..3)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [3..4)::1
MarkupStartTag - [3..4)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [4..5)::1
MarkupStartTag - [4..5)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [5..6)::1
MarkupStartTag - [5..6)::1 - [<] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
CloseAngle;[<Missing>];
MarkupElement - [6..14)::8
MarkupStartTag - [6..14)::8 - [< HEADLF] - Gen<Markup>
OpenAngle;[<];
Text;[<Missing>];
MarkupMinimizedAttributeBlock - [7..12)::5 - [ HEAD]
MarkupTextLiteral - [7..8)::1 - [ ] - Gen<Markup>
Whitespace;[ ];
MarkupTextLiteral - [8..12)::4 - [HEAD] - Gen<Markup>
Text;[HEAD];
MarkupMiscAttributeContent - [12..14)::2
MarkupTextLiteral - [12..14)::2 - [LF] - Gen<Markup>
NewLine;[LF];
CloseAngle;[<Missing>];
MarkupElement - [14..28)::14
MarkupStartTag - [14..17)::3 - [<p>] - Gen<Markup>
OpenAngle;[<];
Text;[p];
CloseAngle;[>];
MarkupTextLiteral - [17..24)::7 - [Current] - Gen<Markup>
Text;[Current];
MarkupEndTag - [24..28)::4 - [</p>] - Gen<Markup>
OpenAngle;[<];
ForwardSlash;[/];
Text;[p];
CloseAngle;[>];
MarkupTextLiteral - [28..39)::11 - [LF=======LF] - Gen<Markup>
NewLine;[LF];
Equals;[=];
Equals;[=];
Equals;[=];
Equals;[=];
Equals;[=];
Equals;[=];
Equals;[=];
NewLine;[LF];
MarkupElement - [39..54)::15
MarkupStartTag - [39..42)::3 - [<p>] - Gen<Markup>
OpenAngle;[<];
Text;[p];
CloseAngle;[>];
MarkupTextLiteral - [42..50)::8 - [Incoming] - Gen<Markup>
Text;[Incoming];
MarkupEndTag - [50..54)::4 - [</p>] - Gen<Markup>
OpenAngle;[<];
ForwardSlash;[/];
Text;[p];
CloseAngle;[>];
MarkupTextLiteral - [54..68)::14 - [LF>>>>>>> main] - Gen<Markup>
NewLine;[LF];
CloseAngle;[>];
CloseAngle;[>];
CloseAngle;[>];
CloseAngle;[>];
CloseAngle;[>];
CloseAngle;[>];
CloseAngle;[>];
Whitespace;[ ];
Text;[main];
EndOfFile;[];
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Markup span at (0:0,0 [0] ) - Parent: Markup block at (0:0,0 [84] )
Transition span at (0:0,0 [1] ) - Parent: Statement block at (0:0,0 [84] )
MetaCode span at (1:0,1 [1] ) - Parent: Statement block at (0:0,0 [84] )
Code span at (2:0,2 [81] ) - Parent: Statement block at (0:0,0 [84] )
MetaCode span at (83:6,0 [1] ) - Parent: Statement block at (0:0,0 [84] )
Markup span at (84:6,1 [0] ) - Parent: Markup block at (0:0,0 [84] )
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
RazorDocument - [0..84)::84 - [@{LF<<<<<<< HEADLF var x = 1;LF=======LF var x = 2;LF>>>>>>> feature-branchLF}]
MarkupBlock - [0..84)::84
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup>
Marker;[];
CSharpCodeBlock - [0..84)::84
CSharpStatement - [0..84)::84
CSharpTransition - [0..1)::1 - Gen<None>
Transition;[@];
CSharpStatementBody - [1..84)::83
RazorMetaCode - [1..2)::1 - Gen<None>
LeftBrace;[{];
CSharpCodeBlock - [2..83)::81
CSharpStatementLiteral - [2..83)::81 - [LF<<<<<<< HEADLF var x = 1;LF=======LF var x = 2;LF>>>>>>> feature-branchLF] - Gen<Stmt>
NewLine;[LF];
ConflictMarkerTrivia;[<<<<<<< HEAD];
NewLine;[LF];
Whitespace;[ ];
Keyword;[var];
Whitespace;[ ];
Identifier;[x];
Whitespace;[ ];
Assign;[=];
Whitespace;[ ];
NumericLiteral;[1];
Semicolon;[;];
NewLine;[LF];
ConflictMarkerTrivia;[=======];
NewLine;[LF];
CSharpDisabledText;[ var x = 2;LF];
ConflictMarkerTrivia;[>>>>>>> feature-branch];
NewLine;[LF];
RazorMetaCode - [83..84)::1 - Gen<None>
RightBrace;[}];
MarkupTextLiteral - [84..84)::0 - [] - Gen<Markup>
Marker;[];
EndOfFile;[];
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Markup span at (0:0,0 [0] ) - Parent: Markup block at (0:0,0 [75] )
Transition span at (0:0,0 [1] ) - Parent: Expression block at (0:0,0 [75] )
MetaCode span at (1:0,1 [1] ) - Parent: Expression block at (0:0,0 [75] )
Code span at (2:0,2 [72] ) - Parent: Expression block at (0:0,0 [75] )
MetaCode span at (74:6,0 [1] ) - Parent: Expression block at (0:0,0 [75] )
Markup span at (75:6,1 [0] ) - Parent: Markup block at (0:0,0 [75] )
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
RazorDocument - [0..75)::75 - [@(LF<<<<<<< HEADLFsomeValueLF=======LFotherValueLF>>>>>>> feature-branchLF)]
MarkupBlock - [0..75)::75
MarkupTextLiteral - [0..0)::0 - [] - Gen<Markup>
Marker;[];
CSharpCodeBlock - [0..75)::75
CSharpExplicitExpression - [0..75)::75
CSharpTransition - [0..1)::1 - Gen<None>
Transition;[@];
CSharpExplicitExpressionBody - [1..75)::74
RazorMetaCode - [1..2)::1 - Gen<None>
LeftParenthesis;[(];
CSharpCodeBlock - [2..74)::72
CSharpExpressionLiteral - [2..74)::72 - [LF<<<<<<< HEADLFsomeValueLF=======LFotherValueLF>>>>>>> feature-branchLF] - Gen<Expr>
NewLine;[LF];
ConflictMarkerTrivia;[<<<<<<< HEAD];
NewLine;[LF];
Identifier;[someValue];
NewLine;[LF];
ConflictMarkerTrivia;[=======];
NewLine;[LF];
CSharpDisabledText;[otherValueLF];
ConflictMarkerTrivia;[>>>>>>> feature-branch];
NewLine;[LF];
RazorMetaCode - [74..75)::1 - Gen<None>
RightParenthesis;[)];
MarkupTextLiteral - [75..75)::0 - [] - Gen<Markup>
Marker;[];
EndOfFile;[];
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Markup span at (0:0,0 [3] ) - Parent: Tag block at (0:0,0 [3] )
Transition span at (3:0,3 [1] ) - Parent: Expression block at (3:0,3 [1] )
Code span at (4:0,4 [0] ) - Parent: Expression block at (3:0,3 [1] )
Markup span at (4:0,4 [1] ) - Parent: Tag block at (4:0,4 [1] )
Markup span at (5:0,5 [1] ) - Parent: Tag block at (5:0,5 [1] )
Markup span at (6:0,6 [1] ) - Parent: Tag block at (6:0,6 [1] )
Markup span at (7:0,7 [1] ) - Parent: Tag block at (7:0,7 [1] )
Markup span at (8:0,8 [1] ) - Parent: Tag block at (8:0,8 [1] )
Markup span at (9:0,9 [1] ) - Parent: Tag block at (9:0,9 [1] )
Markup span at (10:0,10 [1] ) - Parent: Tag block at (10:0,10 [6] )
Markup span at (11:0,11 [5] ) - Parent: Markup block at (11:0,11 [5] )
Markup span at (16:0,16 [4] ) - Parent: Tag block at (16:0,16 [4] )
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(1,5): Error RZ1005: "<<" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.
Loading