diff --git a/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs b/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs
index 00a7de7197..27ac715df5 100644
--- a/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs
+++ b/src/Microsoft.AspNet.Razor/Parser/SyntaxTree/Block.cs
@@ -137,7 +137,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
return hashCodeCombiner;
}
- public IEnumerable Flatten()
+ public virtual IEnumerable Flatten()
{
// Create an enumerable that flattens the tree for use by syntax highlighters, etc.
foreach (SyntaxTreeNode element in Children)
diff --git a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs
index 90ae8ab144..a2102d7f55 100644
--- a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs
+++ b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlock.cs
@@ -99,6 +99,30 @@ namespace Microsoft.AspNet.Razor.Parser.TagHelpers
}
}
+ public override IEnumerable Flatten()
+ {
+ if (SourceStartTag != null)
+ {
+ foreach (var childSpan in SourceStartTag.Flatten())
+ {
+ yield return childSpan;
+ }
+ }
+
+ foreach (var childSpan in base.Flatten())
+ {
+ yield return childSpan;
+ }
+
+ if (SourceEndTag != null)
+ {
+ foreach (var childSpan in SourceEndTag.Flatten())
+ {
+ yield return childSpan;
+ }
+ }
+ }
+
///
public override string ToString()
{
diff --git a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlockBuilder.cs b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlockBuilder.cs
index 5b3ef82b2b..2d3f8bf506 100644
--- a/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlockBuilder.cs
+++ b/src/Microsoft.AspNet.Razor/Parser/TagHelpers/TagHelperBlockBuilder.cs
@@ -134,6 +134,6 @@ namespace Microsoft.AspNet.Razor.Parser.TagHelpers
///
/// The starting of the tag helper.
///
- public SourceLocation Start { get; private set; }
+ public SourceLocation Start { get; set; }
}
}
\ No newline at end of file
diff --git a/test/Microsoft.AspNet.Razor.Test/CodeGenerators/CSharpTagHelperRenderingTest.cs b/test/Microsoft.AspNet.Razor.Test/CodeGenerators/CSharpTagHelperRenderingTest.cs
index 700c143b5b..b57dd97130 100644
--- a/test/Microsoft.AspNet.Razor.Test/CodeGenerators/CSharpTagHelperRenderingTest.cs
+++ b/test/Microsoft.AspNet.Razor.Test/CodeGenerators/CSharpTagHelperRenderingTest.cs
@@ -535,15 +535,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 202,
documentLineIndex: 5,
- documentCharacterOffsetIndex: 38,
- generatedAbsoluteIndex: 1194,
+ generatedAbsoluteIndex: 1226,
generatedLineIndex: 38,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 38,
contentLength: 23),
BuildLineMapping(
documentAbsoluteIndex: 285,
documentLineIndex: 6,
- generatedAbsoluteIndex: 1677,
+ generatedAbsoluteIndex: 1709,
generatedLineIndex: 49,
characterOffsetIndex: 40,
contentLength: 4),
@@ -624,92 +623,89 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 446,
documentLineIndex: 15,
- documentCharacterOffsetIndex: 46,
- generatedAbsoluteIndex: 1873,
+ generatedAbsoluteIndex: 1913,
generatedLineIndex: 72,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 46,
contentLength: 8),
BuildLineMapping(
documentAbsoluteIndex: 463,
documentLineIndex: 15,
- generatedAbsoluteIndex: 2127,
+ generatedAbsoluteIndex: 2167,
generatedLineIndex: 79,
characterOffsetIndex: 63,
contentLength: 4),
BuildLineMapping(
documentAbsoluteIndex: 507,
documentLineIndex: 16,
- documentCharacterOffsetIndex: 31,
- generatedAbsoluteIndex: 2403,
+ generatedAbsoluteIndex: 2468,
generatedLineIndex: 87,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 31,
contentLength: 30),
BuildLineMapping(
documentAbsoluteIndex: 574,
documentLineIndex: 17,
documentCharacterOffsetIndex: 30,
- generatedAbsoluteIndex: 2752,
+ generatedAbsoluteIndex: 2846,
generatedLineIndex: 96,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 29,
contentLength: 10),
BuildLineMapping(
documentAbsoluteIndex: 606,
documentLineIndex: 17,
documentCharacterOffsetIndex: 62,
- generatedAbsoluteIndex: 2834,
+ generatedAbsoluteIndex: 2989,
generatedLineIndex: 102,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 61,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 607,
documentLineIndex: 17,
documentCharacterOffsetIndex: 63,
- generatedAbsoluteIndex: 2907,
+ generatedAbsoluteIndex: 3124,
generatedLineIndex: 108,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 62,
contentLength: 8),
BuildLineMapping(
documentAbsoluteIndex: 637,
documentLineIndex: 17,
documentCharacterOffsetIndex: 93,
- generatedAbsoluteIndex: 2987,
+ generatedAbsoluteIndex: 3295,
generatedLineIndex: 114,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 91,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 638,
documentLineIndex: 17,
documentCharacterOffsetIndex: 94,
- generatedAbsoluteIndex: 3060,
+ generatedAbsoluteIndex: 3460,
generatedLineIndex: 120,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 92,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 643,
documentLineIndex: 18,
- generatedAbsoluteIndex: 3245,
+ generatedAbsoluteIndex: 3645,
generatedLineIndex: 128,
characterOffsetIndex: 0,
contentLength: 15),
BuildLineMapping(
documentAbsoluteIndex: 163,
documentLineIndex: 7,
- documentCharacterOffsetIndex: 32,
- generatedAbsoluteIndex: 3394,
+ generatedAbsoluteIndex: 3820,
generatedLineIndex: 135,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 32,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 769,
documentLineIndex: 21,
- generatedAbsoluteIndex: 3477,
+ generatedAbsoluteIndex: 3903,
generatedLineIndex: 140,
characterOffsetIndex: 0,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 783,
documentLineIndex: 21,
- generatedAbsoluteIndex: 3575,
+ generatedAbsoluteIndex: 4001,
generatedLineIndex: 146,
characterOffsetIndex: 14,
contentLength: 21),
@@ -717,7 +713,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 836,
documentLineIndex: 22,
documentCharacterOffsetIndex: 29,
- generatedAbsoluteIndex: 3832,
+ generatedAbsoluteIndex: 4258,
generatedLineIndex: 154,
generatedCharacterOffsetIndex: 28,
contentLength: 1),
@@ -725,7 +721,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 837,
documentLineIndex: 22,
documentCharacterOffsetIndex: 30,
- generatedAbsoluteIndex: 3833,
+ generatedAbsoluteIndex: 4259,
generatedLineIndex: 154,
generatedCharacterOffsetIndex: 29,
contentLength: 7),
@@ -733,7 +729,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 844,
documentLineIndex: 22,
documentCharacterOffsetIndex: 37,
- generatedAbsoluteIndex: 3840,
+ generatedAbsoluteIndex: 4266,
generatedLineIndex: 154,
generatedCharacterOffsetIndex: 36,
contentLength: 1),
@@ -741,7 +737,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 711,
documentLineIndex: 20,
documentCharacterOffsetIndex: 39,
- generatedAbsoluteIndex: 4009,
+ generatedAbsoluteIndex: 4435,
generatedLineIndex: 160,
generatedCharacterOffsetIndex: 38,
contentLength: 23),
@@ -749,7 +745,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 734,
documentLineIndex: 20,
documentCharacterOffsetIndex: 62,
- generatedAbsoluteIndex: 4032,
+ generatedAbsoluteIndex: 4458,
generatedLineIndex: 160,
generatedCharacterOffsetIndex: 61,
contentLength: 7),
@@ -757,7 +753,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 976,
documentLineIndex: 25,
documentCharacterOffsetIndex: 61,
- generatedAbsoluteIndex: 4306,
+ generatedAbsoluteIndex: 4732,
generatedLineIndex: 167,
generatedCharacterOffsetIndex: 60,
contentLength: 1),
@@ -765,7 +761,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 977,
documentLineIndex: 25,
documentCharacterOffsetIndex: 62,
- generatedAbsoluteIndex: 4307,
+ generatedAbsoluteIndex: 4733,
generatedLineIndex: 167,
generatedCharacterOffsetIndex: 61,
contentLength: 30),
@@ -773,7 +769,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1007,
documentLineIndex: 25,
documentCharacterOffsetIndex: 92,
- generatedAbsoluteIndex: 4337,
+ generatedAbsoluteIndex: 4763,
generatedLineIndex: 167,
generatedCharacterOffsetIndex: 91,
contentLength: 1),
@@ -781,7 +777,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 879,
documentLineIndex: 24,
documentCharacterOffsetIndex: 16,
- generatedAbsoluteIndex: 4487,
+ generatedAbsoluteIndex: 4913,
generatedLineIndex: 173,
generatedCharacterOffsetIndex: 19,
contentLength: 8),
@@ -789,7 +785,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 887,
documentLineIndex: 24,
documentCharacterOffsetIndex: 24,
- generatedAbsoluteIndex: 4495,
+ generatedAbsoluteIndex: 4921,
generatedLineIndex: 173,
generatedCharacterOffsetIndex: 27,
contentLength: 1),
@@ -797,14 +793,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 888,
documentLineIndex: 24,
documentCharacterOffsetIndex: 25,
- generatedAbsoluteIndex: 4496,
+ generatedAbsoluteIndex: 4922,
generatedLineIndex: 173,
generatedCharacterOffsetIndex: 28,
contentLength: 23),
BuildLineMapping(
documentAbsoluteIndex: 1106,
documentLineIndex: 28,
- generatedAbsoluteIndex: 4754,
+ generatedAbsoluteIndex: 5180,
generatedLineIndex: 180,
characterOffsetIndex: 28,
contentLength: 30),
@@ -812,42 +808,42 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1044,
documentLineIndex: 27,
documentCharacterOffsetIndex: 16,
- generatedAbsoluteIndex: 4933,
+ generatedAbsoluteIndex: 5359,
generatedLineIndex: 186,
generatedCharacterOffsetIndex: 19,
contentLength: 30),
BuildLineMapping(
documentAbsoluteIndex: 1234,
documentLineIndex: 31,
- generatedAbsoluteIndex: 5198,
+ generatedAbsoluteIndex: 5624,
generatedLineIndex: 193,
characterOffsetIndex: 28,
contentLength: 3),
BuildLineMapping(
documentAbsoluteIndex: 1237,
documentLineIndex: 31,
- generatedAbsoluteIndex: 5201,
+ generatedAbsoluteIndex: 5627,
generatedLineIndex: 193,
characterOffsetIndex: 31,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 1239,
documentLineIndex: 31,
- generatedAbsoluteIndex: 5203,
+ generatedAbsoluteIndex: 5629,
generatedLineIndex: 193,
characterOffsetIndex: 33,
contentLength: 27),
BuildLineMapping(
documentAbsoluteIndex: 1266,
documentLineIndex: 31,
- generatedAbsoluteIndex: 5230,
+ generatedAbsoluteIndex: 5656,
generatedLineIndex: 193,
characterOffsetIndex: 60,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 1267,
documentLineIndex: 31,
- generatedAbsoluteIndex: 5231,
+ generatedAbsoluteIndex: 5657,
generatedLineIndex: 193,
characterOffsetIndex: 61,
contentLength: 10),
@@ -855,7 +851,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1171,
documentLineIndex: 30,
documentCharacterOffsetIndex: 17,
- generatedAbsoluteIndex: 5390,
+ generatedAbsoluteIndex: 5816,
generatedLineIndex: 199,
generatedCharacterOffsetIndex: 19,
contentLength: 1),
@@ -863,7 +859,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1172,
documentLineIndex: 30,
documentCharacterOffsetIndex: 18,
- generatedAbsoluteIndex: 5391,
+ generatedAbsoluteIndex: 5817,
generatedLineIndex: 199,
generatedCharacterOffsetIndex: 20,
contentLength: 29),
@@ -871,14 +867,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1201,
documentLineIndex: 30,
documentCharacterOffsetIndex: 47,
- generatedAbsoluteIndex: 5420,
+ generatedAbsoluteIndex: 5846,
generatedLineIndex: 199,
generatedCharacterOffsetIndex: 49,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 1306,
documentLineIndex: 33,
- generatedAbsoluteIndex: 5501,
+ generatedAbsoluteIndex: 5927,
generatedLineIndex: 204,
characterOffsetIndex: 9,
contentLength: 11),
@@ -886,21 +882,21 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 1361,
documentLineIndex: 33,
documentCharacterOffsetIndex: 64,
- generatedAbsoluteIndex: 5790,
+ generatedAbsoluteIndex: 6216,
generatedLineIndex: 208,
generatedCharacterOffsetIndex: 63,
contentLength: 7),
BuildLineMapping(
documentAbsoluteIndex: 1326,
documentLineIndex: 33,
- generatedAbsoluteIndex: 5948,
+ generatedAbsoluteIndex: 6374,
generatedLineIndex: 214,
characterOffsetIndex: 29,
contentLength: 3),
BuildLineMapping(
documentAbsoluteIndex: 1390,
documentLineIndex: 35,
- generatedAbsoluteIndex: 6063,
+ generatedAbsoluteIndex: 6489,
generatedLineIndex: 225,
characterOffsetIndex: 0,
contentLength: 1),
@@ -967,15 +963,14 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 200,
documentLineIndex: 5,
- documentCharacterOffsetIndex: 51,
- generatedAbsoluteIndex: 1199,
+ generatedAbsoluteIndex: 1244,
generatedLineIndex: 41,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 51,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 223,
documentLineIndex: 5,
- generatedAbsoluteIndex: 1467,
+ generatedAbsoluteIndex: 1512,
generatedLineIndex: 48,
characterOffsetIndex: 74,
contentLength: 4),
@@ -1090,16 +1085,15 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 783,
documentLineIndex: 20,
- documentCharacterOffsetIndex: 42,
- generatedAbsoluteIndex: 4142,
+ generatedAbsoluteIndex: 4178,
generatedLineIndex: 107,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 42,
contentLength: 8),
BuildLineMapping(
documentAbsoluteIndex: 826,
documentLineIndex: 21,
documentCharacterOffsetIndex: 29,
- generatedAbsoluteIndex: 4621,
+ generatedAbsoluteIndex: 4657,
generatedLineIndex: 116,
generatedCharacterOffsetIndex: 51,
contentLength: 2),
@@ -1151,242 +1145,216 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 59,
documentLineIndex: 2,
- documentCharacterOffsetIndex: 24,
- generatedAbsoluteIndex: 1002,
+ generatedAbsoluteIndex: 1020,
generatedLineIndex: 34,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 24,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 96,
documentLineIndex: 4,
documentCharacterOffsetIndex: 17,
- generatedAbsoluteIndex: 1160,
+ generatedAbsoluteIndex: 1194,
generatedLineIndex: 40,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 16,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 109,
documentLineIndex: 4,
- documentCharacterOffsetIndex: 30,
- generatedAbsoluteIndex: 1258,
+ generatedAbsoluteIndex: 1316,
generatedLineIndex: 46,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 30,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 121,
documentLineIndex: 4,
- documentCharacterOffsetIndex: 42,
- generatedAbsoluteIndex: 1349,
+ generatedAbsoluteIndex: 1449,
generatedLineIndex: 51,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 42,
contentLength: 10),
BuildLineMapping(
documentAbsoluteIndex: 132,
documentLineIndex: 4,
- documentCharacterOffsetIndex: 53,
- generatedAbsoluteIndex: 1445,
+ generatedAbsoluteIndex: 1592,
generatedLineIndex: 57,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 53,
contentLength: 5),
BuildLineMapping(
documentAbsoluteIndex: 137,
documentLineIndex: 4,
- documentCharacterOffsetIndex: 58,
- generatedAbsoluteIndex: 1529,
+ generatedAbsoluteIndex: 1734,
generatedLineIndex: 62,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 58,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 176,
documentLineIndex: 6,
- documentCharacterOffsetIndex: 22,
- generatedAbsoluteIndex: 1684,
+ generatedAbsoluteIndex: 1905,
generatedLineIndex: 69,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 22,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 214,
documentLineIndex: 6,
- documentCharacterOffsetIndex: 60,
- generatedAbsoluteIndex: 1833,
+ generatedAbsoluteIndex: 2108,
generatedLineIndex: 75,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 60,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 256,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 15,
- generatedAbsoluteIndex: 1997,
+ generatedAbsoluteIndex: 2281,
generatedLineIndex: 81,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 15,
contentLength: 13),
BuildLineMapping(
documentAbsoluteIndex: 271,
documentLineIndex: 8,
documentCharacterOffsetIndex: 30,
- generatedAbsoluteIndex: 2089,
+ generatedAbsoluteIndex: 2402,
generatedLineIndex: 86,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 29,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 284,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 43,
- generatedAbsoluteIndex: 2187,
+ generatedAbsoluteIndex: 2537,
generatedLineIndex: 92,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 43,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 296,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 55,
- generatedAbsoluteIndex: 2278,
+ generatedAbsoluteIndex: 2683,
generatedLineIndex: 97,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 55,
contentLength: 10),
BuildLineMapping(
documentAbsoluteIndex: 307,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 66,
- generatedAbsoluteIndex: 2374,
+ generatedAbsoluteIndex: 2839,
generatedLineIndex: 103,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 66,
contentLength: 5),
BuildLineMapping(
documentAbsoluteIndex: 312,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 71,
- generatedAbsoluteIndex: 2458,
+ generatedAbsoluteIndex: 2994,
generatedLineIndex: 108,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 71,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 316,
documentLineIndex: 8,
- documentCharacterOffsetIndex: 75,
- generatedAbsoluteIndex: 2546,
+ generatedAbsoluteIndex: 3151,
generatedLineIndex: 114,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 75,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 348,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 17,
- generatedAbsoluteIndex: 2696,
+ generatedAbsoluteIndex: 3312,
generatedLineIndex: 120,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 17,
contentLength: 13),
BuildLineMapping(
documentAbsoluteIndex: 363,
documentLineIndex: 9,
documentCharacterOffsetIndex: 32,
- generatedAbsoluteIndex: 2789,
+ generatedAbsoluteIndex: 3436,
generatedLineIndex: 125,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 31,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 376,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 45,
- generatedAbsoluteIndex: 2888,
+ generatedAbsoluteIndex: 3574,
generatedLineIndex: 131,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 45,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 388,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 57,
- generatedAbsoluteIndex: 2980,
+ generatedAbsoluteIndex: 3723,
generatedLineIndex: 136,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 57,
contentLength: 10),
BuildLineMapping(
documentAbsoluteIndex: 399,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 68,
- generatedAbsoluteIndex: 3077,
+ generatedAbsoluteIndex: 3882,
generatedLineIndex: 142,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 68,
contentLength: 5),
BuildLineMapping(
documentAbsoluteIndex: 404,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 73,
- generatedAbsoluteIndex: 3162,
+ generatedAbsoluteIndex: 4040,
generatedLineIndex: 147,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 73,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 408,
documentLineIndex: 9,
- documentCharacterOffsetIndex: 77,
- generatedAbsoluteIndex: 3251,
+ generatedAbsoluteIndex: 4200,
generatedLineIndex: 153,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 77,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 445,
documentLineIndex: 11,
- documentCharacterOffsetIndex: 17,
- generatedAbsoluteIndex: 3416,
+ generatedAbsoluteIndex: 4376,
generatedLineIndex: 159,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 17,
contentLength: 13),
BuildLineMapping(
documentAbsoluteIndex: 460,
documentLineIndex: 11,
- documentCharacterOffsetIndex: 32,
- generatedAbsoluteIndex: 3515,
+ generatedAbsoluteIndex: 4501,
generatedLineIndex: 164,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 32,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 492,
documentLineIndex: 11,
- documentCharacterOffsetIndex: 64,
- generatedAbsoluteIndex: 3613,
+ generatedAbsoluteIndex: 4657,
generatedLineIndex: 169,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 64,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 529,
documentLineIndex: 13,
documentCharacterOffsetIndex: 17,
- generatedAbsoluteIndex: 3772,
+ generatedAbsoluteIndex: 4832,
generatedLineIndex: 175,
- generatedCharacterOffsetIndex: 0,
+ generatedCharacterOffsetIndex: 16,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 542,
documentLineIndex: 13,
- documentCharacterOffsetIndex: 30,
- generatedAbsoluteIndex: 3871,
+ generatedAbsoluteIndex: 4955,
generatedLineIndex: 181,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 30,
contentLength: 12),
BuildLineMapping(
documentAbsoluteIndex: 554,
documentLineIndex: 13,
- documentCharacterOffsetIndex: 42,
- generatedAbsoluteIndex: 3963,
+ generatedAbsoluteIndex: 5089,
generatedLineIndex: 186,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 42,
contentLength: 10),
BuildLineMapping(
documentAbsoluteIndex: 565,
documentLineIndex: 13,
- documentCharacterOffsetIndex: 53,
- generatedAbsoluteIndex: 4060,
+ generatedAbsoluteIndex: 5233,
generatedLineIndex: 192,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 53,
contentLength: 5),
BuildLineMapping(
documentAbsoluteIndex: 570,
documentLineIndex: 13,
- documentCharacterOffsetIndex: 58,
- generatedAbsoluteIndex: 4145,
+ generatedAbsoluteIndex: 5376,
generatedLineIndex: 197,
- generatedCharacterOffsetIndex: 0,
+ characterOffsetIndex: 58,
contentLength: 2),
}
},
@@ -1420,36 +1388,35 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 157,
documentLineIndex: 7,
- documentCharacterOffsetIndex: 12,
- generatedAbsoluteIndex: 1326,
+ generatedAbsoluteIndex: 1332,
generatedLineIndex: 48,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 12,
contentLength: 6),
BuildLineMapping(
documentAbsoluteIndex: 171,
documentLineIndex: 7,
- generatedAbsoluteIndex: 1443,
+ generatedAbsoluteIndex: 1449,
generatedLineIndex: 53,
characterOffsetIndex: 26,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 202,
documentLineIndex: 8,
- generatedAbsoluteIndex: 1610,
+ generatedAbsoluteIndex: 1616,
generatedLineIndex: 59,
characterOffsetIndex: 21,
contentLength: 5),
BuildLineMapping(
documentAbsoluteIndex: 207,
documentLineIndex: 8,
- generatedAbsoluteIndex: 1615,
+ generatedAbsoluteIndex: 1621,
generatedLineIndex: 59,
characterOffsetIndex: 26,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 208,
documentLineIndex: 8,
- generatedAbsoluteIndex: 1616,
+ generatedAbsoluteIndex: 1622,
generatedLineIndex: 59,
characterOffsetIndex: 27,
contentLength: 3),
@@ -1457,7 +1424,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 241,
documentLineIndex: 9,
documentCharacterOffsetIndex: 22,
- generatedAbsoluteIndex: 1785,
+ generatedAbsoluteIndex: 1791,
generatedLineIndex: 65,
generatedCharacterOffsetIndex: 21,
contentLength: 3),
@@ -1465,7 +1432,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 274,
documentLineIndex: 10,
documentCharacterOffsetIndex: 22,
- generatedAbsoluteIndex: 1954,
+ generatedAbsoluteIndex: 1960,
generatedLineIndex: 71,
generatedCharacterOffsetIndex: 21,
contentLength: 1),
@@ -1473,7 +1440,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 275,
documentLineIndex: 10,
documentCharacterOffsetIndex: 23,
- generatedAbsoluteIndex: 1955,
+ generatedAbsoluteIndex: 1961,
generatedLineIndex: 71,
generatedCharacterOffsetIndex: 22,
contentLength: 4),
@@ -1481,43 +1448,42 @@ namespace Microsoft.AspNet.Razor.Test.Generator
documentAbsoluteIndex: 279,
documentLineIndex: 10,
documentCharacterOffsetIndex: 27,
- generatedAbsoluteIndex: 1959,
+ generatedAbsoluteIndex: 1965,
generatedLineIndex: 71,
generatedCharacterOffsetIndex: 26,
contentLength: 1),
BuildLineMapping(
documentAbsoluteIndex: 307,
documentLineIndex: 11,
- documentCharacterOffsetIndex: 19,
- generatedAbsoluteIndex: 2111,
+ generatedAbsoluteIndex: 2130,
generatedLineIndex: 77,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 19,
contentLength: 6),
BuildLineMapping(
documentAbsoluteIndex: 321,
documentLineIndex: 11,
- generatedAbsoluteIndex: 2236,
+ generatedAbsoluteIndex: 2255,
generatedLineIndex: 82,
characterOffsetIndex: 33,
contentLength: 4),
BuildLineMapping(
documentAbsoluteIndex: 325,
documentLineIndex: 11,
- generatedAbsoluteIndex: 2240,
+ generatedAbsoluteIndex: 2259,
generatedLineIndex: 82,
characterOffsetIndex: 37,
contentLength: 2),
BuildLineMapping(
documentAbsoluteIndex: 327,
documentLineIndex: 11,
- generatedAbsoluteIndex: 2242,
+ generatedAbsoluteIndex: 2261,
generatedLineIndex: 82,
characterOffsetIndex: 39,
contentLength: 8),
BuildLineMapping(
documentAbsoluteIndex: 335,
documentLineIndex: 11,
- generatedAbsoluteIndex: 2250,
+ generatedAbsoluteIndex: 2269,
generatedLineIndex: 82,
characterOffsetIndex: 47,
contentLength: 1),
@@ -1554,22 +1520,21 @@ namespace Microsoft.AspNet.Razor.Test.Generator
BuildLineMapping(
documentAbsoluteIndex: 339,
documentLineIndex: 7,
- documentCharacterOffsetIndex: 50,
- generatedAbsoluteIndex: 1385,
+ generatedAbsoluteIndex: 1429,
generatedLineIndex: 49,
- generatedCharacterOffsetIndex: 6,
+ characterOffsetIndex: 50,
contentLength: 23),
BuildLineMapping(
documentAbsoluteIndex: 389,
documentLineIndex: 7,
- generatedAbsoluteIndex: 1692,
+ generatedAbsoluteIndex: 1736,
generatedLineIndex: 56,
characterOffsetIndex: 100,
contentLength: 4),
BuildLineMapping(
documentAbsoluteIndex: 424,
documentLineIndex: 9,
- generatedAbsoluteIndex: 1775,
+ generatedAbsoluteIndex: 1819,
generatedLineIndex: 61,
characterOffsetIndex: 0,
contentLength: 15),
diff --git a/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs b/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs
index 04752f01c3..19c82eef6c 100644
--- a/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs
+++ b/test/Microsoft.AspNet.Razor.Test/Editor/RazorEditorParserTest.cs
@@ -6,6 +6,8 @@ using System.Threading;
using System.Web.WebPages.TestUtils;
using Microsoft.AspNet.Razor.Editor;
using Microsoft.AspNet.Razor.Parser;
+using Microsoft.AspNet.Razor.Parser.SyntaxTree;
+using Microsoft.AspNet.Razor.Runtime.TagHelpers;
using Microsoft.AspNet.Razor.Test.Framework;
using Microsoft.AspNet.Razor.Test.Generator;
using Microsoft.AspNet.Razor.Test.Utils;
@@ -33,6 +35,70 @@ namespace Microsoft.AspNet.Razor.Test.Editor
Assert.Throws("sourceFileName", () => new RazorEditorParser(CreateHost(), string.Empty));
}
+ [Theory]
+ [InlineData(" ")]
+ [InlineData("\r\n")]
+ [InlineData("abcdefg")]
+ [InlineData("\f\r\n abcd \t")]
+ public void TreesAreDifferentReturnsFalseForAddedContent(string content)
+ {
+ // Arrange
+ var factory = SpanFactory.CreateCsHtml();
+ var blockFactory = new BlockFactory(factory);
+ var original = new MarkupBlock(
+ blockFactory.MarkupTagBlock(""),
+ blockFactory.TagHelperBlock(
+ tagName: "div",
+ tagMode: TagMode.StartTagAndEndTag,
+ start: new SourceLocation(3, 0, 3),
+ startTag: blockFactory.MarkupTagBlock("
"),
+ children: new SyntaxTreeNode[]
+ {
+ factory.Markup($"{Environment.NewLine}{Environment.NewLine}")
+ },
+ endTag: blockFactory.MarkupTagBlock("
")),
+ blockFactory.MarkupTagBlock("
"));
+
+ factory.Reset();
+
+ var modified = new MarkupBlock(
+ blockFactory.MarkupTagBlock(""),
+ blockFactory.TagHelperBlock(
+ tagName: "div",
+ tagMode: TagMode.StartTagAndEndTag,
+ start: new SourceLocation(3, 0, 3),
+ startTag: blockFactory.MarkupTagBlock("
"),
+ children: new SyntaxTreeNode[]
+ {
+ factory.Markup($"{Environment.NewLine}{content}{Environment.NewLine}")
+ },
+ endTag: blockFactory.MarkupTagBlock("
")),
+ blockFactory.MarkupTagBlock(""));
+ original.LinkNodes();
+ modified.LinkNodes();
+
+ var oldBuffer = new StringTextBuffer($"{Environment.NewLine}{Environment.NewLine}
");
+ var newBuffer = new StringTextBuffer(
+ $"{Environment.NewLine}{content}{Environment.NewLine}
");
+
+ // Act
+ var treesAreDifferent = BackgroundParser.TreesAreDifferent(
+ original,
+ modified,
+ new[]
+ {
+ new TextChange(
+ position: 8 + Environment.NewLine.Length,
+ oldLength: 0,
+ oldBuffer: oldBuffer,
+ newLength: content.Length,
+ newBuffer: newBuffer)
+ });
+
+ // Assert
+ Assert.False(treesAreDifferent);
+ }
+
[Fact]
public void TreesAreDifferentReturnsTrueIfTreeStructureIsDifferent()
{
diff --git a/test/Microsoft.AspNet.Razor.Test/Framework/BlockFactory.cs b/test/Microsoft.AspNet.Razor.Test/Framework/BlockFactory.cs
index ff56d4e2d0..73435ea3dc 100644
--- a/test/Microsoft.AspNet.Razor.Test/Framework/BlockFactory.cs
+++ b/test/Microsoft.AspNet.Razor.Test/Framework/BlockFactory.cs
@@ -3,6 +3,8 @@
using System.Collections.Generic;
using Microsoft.AspNet.Razor.Parser.SyntaxTree;
+using Microsoft.AspNet.Razor.Parser.TagHelpers;
+using Microsoft.AspNet.Razor.Runtime.TagHelpers;
namespace Microsoft.AspNet.Razor.Test.Framework
{
@@ -55,5 +57,27 @@ namespace Microsoft.AspNet.Razor.Test.Framework
_factory.Markup(content).Accepts(acceptedCharacters)
);
}
+
+ public Block TagHelperBlock(
+ string tagName,
+ TagMode tagMode,
+ SourceLocation start,
+ Block startTag,
+ SyntaxTreeNode[] children,
+ Block endTag)
+ {
+ var builder = new TagHelperBlockBuilder(
+ tagName,
+ tagMode,
+ attributes: new List>(),
+ children: children)
+ {
+ Start = start,
+ SourceStartTag = startTag,
+ SourceEndTag = endTag
+ };
+
+ return builder.Build();
+ }
}
}
\ No newline at end of file
diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/TagHelperBlockTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/TagHelperBlockTest.cs
new file mode 100644
index 0000000000..84fcef89ee
--- /dev/null
+++ b/test/Microsoft.AspNet.Razor.Test/Parser/TagHelperBlockTest.cs
@@ -0,0 +1,108 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNet.Razor.Parser.SyntaxTree;
+using Microsoft.AspNet.Razor.Runtime.TagHelpers;
+using Microsoft.AspNet.Razor.Test.Framework;
+using Xunit;
+
+namespace Microsoft.AspNet.Razor.Parser.TagHelpers
+{
+ public class TagHelperBlockTest
+ {
+ [Fact]
+ public void FlattenFlattensSelfClosingTagHelpers()
+ {
+ // Arrange
+ var spanFactory = SpanFactory.CreateCsHtml();
+ var blockFactory = new BlockFactory(spanFactory);
+ var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
+ tagName: "input",
+ tagMode: TagMode.SelfClosing,
+ start: SourceLocation.Zero,
+ startTag: blockFactory.MarkupTagBlock(""),
+ children: new SyntaxTreeNode[0],
+ endTag: null);
+ spanFactory.Reset();
+ var expectedNode = spanFactory.Markup("");
+
+ // Act
+ var flattenedNodes = tagHelper.Flatten();
+
+ // Assert
+ var node = Assert.Single(flattenedNodes);
+ Assert.True(node.EquivalentTo(expectedNode));
+ }
+
+ [Fact]
+ public void FlattenFlattensStartAndEndTagTagHelpers()
+ {
+ // Arrange
+ var spanFactory = SpanFactory.CreateCsHtml();
+ var blockFactory = new BlockFactory(spanFactory);
+ var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
+ tagName: "div",
+ tagMode: TagMode.StartTagAndEndTag,
+ start: SourceLocation.Zero,
+ startTag: blockFactory.MarkupTagBlock(""),
+ children: new SyntaxTreeNode[0],
+ endTag: blockFactory.MarkupTagBlock("
"));
+ spanFactory.Reset();
+ var expectedStartTag = spanFactory.Markup("");
+ var expectedEndTag = spanFactory.Markup("
");
+
+ // Act
+ var flattenedNodes = tagHelper.Flatten();
+
+ // Assert
+ Assert.Collection(
+ flattenedNodes,
+ first =>
+ {
+ Assert.True(first.EquivalentTo(expectedStartTag));
+ },
+ second =>
+ {
+ Assert.True(second.EquivalentTo(expectedEndTag));
+ });
+ }
+
+ [Fact]
+ public void FlattenFlattensStartAndEndTagWithChildrenTagHelpers()
+ {
+ // Arrange
+ var spanFactory = SpanFactory.CreateCsHtml();
+ var blockFactory = new BlockFactory(spanFactory);
+ var tagHelper = (TagHelperBlock)blockFactory.TagHelperBlock(
+ tagName: "div",
+ tagMode: TagMode.StartTagAndEndTag,
+ start: SourceLocation.Zero,
+ startTag: blockFactory.MarkupTagBlock(""),
+ children: new SyntaxTreeNode[] { spanFactory.Markup("Hello World") },
+ endTag: blockFactory.MarkupTagBlock("
"));
+ spanFactory.Reset();
+ var expectedStartTag = spanFactory.Markup("");
+ var expectedChildren = spanFactory.Markup("Hello World");
+ var expectedEndTag = spanFactory.Markup("
");
+
+ // Act
+ var flattenedNodes = tagHelper.Flatten();
+
+ // Assert
+ Assert.Collection(
+ flattenedNodes,
+ first =>
+ {
+ Assert.True(first.EquivalentTo(expectedStartTag));
+ },
+ second =>
+ {
+ Assert.True(second.EquivalentTo(expectedChildren));
+ },
+ third =>
+ {
+ Assert.True(third.EquivalentTo(expectedEndTag));
+ });
+ }
+ }
+}
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs
index 9bfbcd99aa..5a616ebf7e 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs
@@ -55,7 +55,7 @@ namespace TestOutput
StartTagHelperWritingScope();
WriteLiteral("2000 + ");
#line 6 "BasicTagHelpers.cshtml"
-Write(ViewBag.DefaultInterval);
+ Write(ViewBag.DefaultInterval);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.DesignTime.cs
index 88dc1992a9..192b6c04ce 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.DesignTime.cs
@@ -36,7 +36,7 @@ namespace TestOutput
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 6 "BasicTagHelpers.cshtml"
-__o = ViewBag.DefaultInterval;
+ __o = ViewBag.DefaultInterval;
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.cs
index 5c676d85c2..2e0b341bad 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/BasicTagHelpers.cs
@@ -56,7 +56,7 @@ namespace TestOutput
StartTagHelperWritingScope();
WriteLiteral("2000 + ");
#line 6 "BasicTagHelpers.cshtml"
-Write(ViewBag.DefaultInterval);
+ Write(ViewBag.DefaultInterval);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.DesignTime.cs
index f1dc47f02a..2a6877f9c8 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.DesignTime.cs
@@ -70,7 +70,7 @@ if (true)
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 16 "ComplexTagHelpers.cshtml"
-__o = checkbox;
+ __o = checkbox;
#line default
#line hidden
@@ -85,7 +85,7 @@ __o = checkbox;
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 17 "ComplexTagHelpers.cshtml"
-__o = true ? "checkbox" : "anything";
+ __o = true ? "checkbox" : "anything";
#line default
#line hidden
@@ -94,31 +94,31 @@ __o = true ? "checkbox" : "anything";
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 18 "ComplexTagHelpers.cshtml"
-if(true) {
+ if(true) {
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-
+
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-} else {
+ } else {
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-
+
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-}
+ }
#line default
#line hidden
@@ -133,7 +133,7 @@ if(true) {
__PTagHelper = CreateTagHelper();
#line 8 "ComplexTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.cs
index 3f4d3526e7..3c48947d9e 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/ComplexTagHelpers.cs
@@ -118,7 +118,7 @@ namespace TestOutput
__tagHelperExecutionContext.Add(__InputTagHelper2);
StartTagHelperWritingScope();
#line 16 "ComplexTagHelpers.cshtml"
-WriteLiteral(checkbox);
+ WriteLiteral(checkbox);
#line default
#line hidden
@@ -158,7 +158,7 @@ WriteLiteral(checkbox);
__tagHelperExecutionContext.Add(__InputTagHelper2);
StartTagHelperWritingScope();
#line 17 "ComplexTagHelpers.cshtml"
-WriteLiteral(true ? "checkbox" : "anything");
+ WriteLiteral(true ? "checkbox" : "anything");
#line default
#line hidden
@@ -183,33 +183,33 @@ WriteLiteral(true ? "checkbox" : "anything");
__tagHelperExecutionContext.Add(__InputTagHelper2);
StartTagHelperWritingScope();
#line 18 "ComplexTagHelpers.cshtml"
-if(true) {
+ if(true) {
#line default
#line hidden
WriteLiteral("checkbox");
#line 18 "ComplexTagHelpers.cshtml"
-
+
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-} else {
+ } else {
#line default
#line hidden
WriteLiteral("anything");
#line 18 "ComplexTagHelpers.cshtml"
-
+
#line default
#line hidden
#line 18 "ComplexTagHelpers.cshtml"
-}
+ }
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.DesignTime.cs
index 3f154a58d5..cfb4bdfbb4 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.DesignTime.cs
@@ -32,170 +32,170 @@ namespace TestOutput
{
__InputTagHelper = CreateTagHelper();
#line 3 "DynamicAttributeTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
__InputTagHelper = CreateTagHelper();
#line 5 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
#line 5 "DynamicAttributeTagHelpers.cshtml"
-__o = string.Empty;
+ __o = string.Empty;
#line default
#line hidden
#line 5 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
#line 5 "DynamicAttributeTagHelpers.cshtml"
-__o = false;
+ __o = false;
#line default
#line hidden
#line 5 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
__InputTagHelper = CreateTagHelper();
#line 7 "DynamicAttributeTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
__InputTagHelper.Bound = string.Empty;
#line 7 "DynamicAttributeTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
__InputTagHelper = CreateTagHelper();
#line 9 "DynamicAttributeTagHelpers.cshtml"
-__o = long.MinValue;
+ __o = long.MinValue;
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-__o = string.Empty;
+ __o = string.Empty;
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-__o = false;
+ __o = false;
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-__o = int.MaxValue;
+ __o = int.MaxValue;
#line default
#line hidden
__InputTagHelper.Bound = string.Empty;
#line 10 "DynamicAttributeTagHelpers.cshtml"
-__o = long.MinValue;
+ __o = long.MinValue;
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
-__o = string.Empty;
+ __o = string.Empty;
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
-__o = false;
+ __o = false;
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
#line 10 "DynamicAttributeTagHelpers.cshtml"
-__o = int.MaxValue;
+ __o = int.MaxValue;
#line default
#line hidden
__InputTagHelper = CreateTagHelper();
#line 12 "DynamicAttributeTagHelpers.cshtml"
-__o = long.MinValue;
+ __o = long.MinValue;
#line default
#line hidden
#line 12 "DynamicAttributeTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
#line 12 "DynamicAttributeTagHelpers.cshtml"
-__o = int.MaxValue;
+ __o = int.MaxValue;
#line default
#line hidden
__InputTagHelper = CreateTagHelper();
#line 14 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
#line 14 "DynamicAttributeTagHelpers.cshtml"
-__o = string.Empty;
+ __o = string.Empty;
#line default
#line hidden
#line 14 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
#line 14 "DynamicAttributeTagHelpers.cshtml"
-__o = false;
+ __o = false;
#line default
#line hidden
#line 14 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.cs
index f40ecdba93..d6e87f0ec3 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/DynamicAttributeTagHelpers.cs
@@ -56,7 +56,7 @@ AddHtmlAttributeValue(" ", 57, DateTime.Now, 58, 14, false);
BeginAddHtmlAttributeValues(__tagHelperExecutionContext, "unbound", 2);
AddHtmlAttributeValue("", 95, new Template((__razor_attribute_value_writer) => {
#line 5 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
@@ -69,20 +69,20 @@ WriteTo(__razor_attribute_value_writer, string.Empty);
#line hidden
Instrumentation.EndContext();
#line 5 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
Instrumentation.BeginContext(132, 5, false);
#line 5 "DynamicAttributeTagHelpers.cshtml"
-WriteTo(__razor_attribute_value_writer, false);
+ WriteTo(__razor_attribute_value_writer, false);
#line default
#line hidden
Instrumentation.EndContext();
#line 5 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
@@ -107,7 +107,7 @@ WriteTo(__razor_attribute_value_writer, false);
StartTagHelperWritingScope();
WriteLiteral("prefix ");
#line 7 "DynamicAttributeTagHelpers.cshtml"
-WriteLiteral(DateTime.Now);
+ WriteLiteral(DateTime.Now);
#line default
#line hidden
@@ -139,42 +139,42 @@ AddHtmlAttributeValue(" ", 212, DateTime.Now, 213, 14, false);
__tagHelperExecutionContext.Add(__InputTagHelper);
StartTagHelperWritingScope();
#line 9 "DynamicAttributeTagHelpers.cshtml"
-WriteLiteral(long.MinValue);
+ WriteLiteral(long.MinValue);
#line default
#line hidden
WriteLiteral(" ");
#line 9 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-WriteLiteral(string.Empty);
+ WriteLiteral(string.Empty);
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
-WriteLiteral(false);
+ WriteLiteral(false);
#line default
#line hidden
#line 9 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
WriteLiteral(" ");
#line 9 "DynamicAttributeTagHelpers.cshtml"
-WriteLiteral(int.MaxValue);
+ WriteLiteral(int.MaxValue);
#line default
#line hidden
@@ -189,33 +189,33 @@ AddHtmlAttributeValue("", 347, long.MinValue, 347, 14, false);
#line hidden
AddHtmlAttributeValue(" ", 361, new Template((__razor_attribute_value_writer) => {
#line 10 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
Instrumentation.BeginContext(376, 12, false);
#line 10 "DynamicAttributeTagHelpers.cshtml"
-WriteTo(__razor_attribute_value_writer, string.Empty);
+ WriteTo(__razor_attribute_value_writer, string.Empty);
#line default
#line hidden
Instrumentation.EndContext();
#line 10 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
Instrumentation.BeginContext(399, 5, false);
#line 10 "DynamicAttributeTagHelpers.cshtml"
-WriteTo(__razor_attribute_value_writer, false);
+ WriteTo(__razor_attribute_value_writer, false);
#line default
#line hidden
Instrumentation.EndContext();
#line 10 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
@@ -276,7 +276,7 @@ AddHtmlAttributeValue(" ", 490, int.MaxValue, 491, 14, false);
BeginAddHtmlAttributeValues(__tagHelperExecutionContext, "unbound", 1);
AddHtmlAttributeValue("", 528, new Template((__razor_attribute_value_writer) => {
#line 14 "DynamicAttributeTagHelpers.cshtml"
-if (true) {
+ if (true) {
#line default
#line hidden
@@ -289,20 +289,20 @@ WriteTo(__razor_attribute_value_writer, string.Empty);
#line hidden
Instrumentation.EndContext();
#line 14 "DynamicAttributeTagHelpers.cshtml"
- } else {
+ } else {
#line default
#line hidden
Instrumentation.BeginContext(565, 5, false);
#line 14 "DynamicAttributeTagHelpers.cshtml"
-WriteTo(__razor_attribute_value_writer, false);
+ WriteTo(__razor_attribute_value_writer, false);
#line default
#line hidden
Instrumentation.EndContext();
#line 14 "DynamicAttributeTagHelpers.cshtml"
- }
+ }
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.DesignTime.cs
index b9fe61f0cb..167dbfd76e 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.DesignTime.cs
@@ -39,7 +39,7 @@ namespace TestOutput
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 6 "EscapedTagHelpers.cshtml"
-__o = DateTime.Now;
+ __o = DateTime.Now;
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.cs
index 16c89c4095..b8602417d6 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/EscapedTagHelpers.cs
@@ -47,7 +47,7 @@ namespace TestOutput
__tagHelperExecutionContext.Add(__InputTagHelper2);
StartTagHelperWritingScope();
#line 6 "EscapedTagHelpers.cshtml"
-WriteLiteral(DateTime.Now);
+ WriteLiteral(DateTime.Now);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.DesignTime.cs
index de703c0dd1..a40e56fe7b 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.DesignTime.cs
@@ -47,7 +47,7 @@ namespace TestOutput
__InputTagHelper = CreateTagHelper();
__InputTagHelper2 = CreateTagHelper();
#line 8 "NestedScriptTagTagHelpers.cshtml"
-__o = ViewBag.DefaultInterval;
+ __o = ViewBag.DefaultInterval;
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.cs
index 79b6758d85..3bdacd5c39 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/NestedScriptTagTagHelpers.cs
@@ -60,7 +60,7 @@ namespace TestOutput
StartTagHelperWritingScope();
WriteLiteral("2000 + ");
#line 8 "NestedScriptTagTagHelpers.cshtml"
-Write(ViewBag.DefaultInterval);
+ Write(ViewBag.DefaultInterval);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.DesignTime.cs
index e8bd799836..2ef87b2645 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.DesignTime.cs
@@ -105,7 +105,7 @@ __InputTagHelper1.IntProperty = 42;
__InputTagHelper1.StringDictionaryProperty["paprika"] = "another string";
__InputTagHelper2.StringDictionaryProperty["paprika"] = __InputTagHelper1.StringDictionaryProperty["paprika"];
#line 21 "PrefixedAttributeTagHelpers.cshtml"
-__o = literate;
+ __o = literate;
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.Reversed.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.Reversed.cs
index dbf1e23cb1..889cfddfa5 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.Reversed.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.Reversed.cs
@@ -176,7 +176,7 @@ __InputTagHelper2.IntDictionaryProperty["grabber"] = 42;
StartTagHelperWritingScope();
WriteLiteral("literate ");
#line 21 "PrefixedAttributeTagHelpers.cshtml"
-WriteLiteral(literate);
+ WriteLiteral(literate);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.cs
index ce4e7b7574..6d2b4bcdc8 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/PrefixedAttributeTagHelpers.cs
@@ -176,7 +176,7 @@ __InputTagHelper1.IntProperty = 42;
StartTagHelperWritingScope();
WriteLiteral("literate ");
#line 21 "PrefixedAttributeTagHelpers.cshtml"
-WriteLiteral(literate);
+ WriteLiteral(literate);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersInSection.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersInSection.cs
index 333ccffe72..cd15346da9 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersInSection.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersInSection.cs
@@ -52,7 +52,7 @@ namespace TestOutput
Instrumentation.EndContext();
Instrumentation.BeginContext(313, 4, false);
#line 11 "TagHelpersInSection.cshtml"
- Write(code);
+ Write(code);
#line default
#line hidden
@@ -76,7 +76,7 @@ namespace TestOutput
StartTagHelperWritingScope();
WriteLiteral("Current Time: ");
#line 9 "TagHelpersInSection.cshtml"
-WriteLiteral(DateTime.Now);
+ WriteLiteral(DateTime.Now);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersWithWeirdlySpacedAttributes.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersWithWeirdlySpacedAttributes.cs
index 2e680e7e25..0406162f7e 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersWithWeirdlySpacedAttributes.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TagHelpersWithWeirdlySpacedAttributes.cs
@@ -46,7 +46,7 @@ namespace TestOutput
__tagHelperExecutionContext.AddTagHelperAttribute("age", __PTagHelper.Age);
StartTagHelperWritingScope();
#line 7 "TagHelpersWithWeirdlySpacedAttributes.cshtml"
-Write(true);
+ Write(true);
#line default
#line hidden
diff --git a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TransitionsInTagHelperAttributes.DesignTime.cs b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TransitionsInTagHelperAttributes.DesignTime.cs
index 3325164f6d..8b7bc50850 100644
--- a/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TransitionsInTagHelperAttributes.DesignTime.cs
+++ b/test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/Output/TransitionsInTagHelperAttributes.DesignTime.cs
@@ -46,7 +46,7 @@ namespace TestOutput
#line hidden
__PTagHelper = CreateTagHelper();
#line 8 "TransitionsInTagHelperAttributes.cshtml"
-__o = @class;
+ __o = @class;
#line default
#line hidden
@@ -75,7 +75,7 @@ __o = @class;
#line hidden
__PTagHelper = CreateTagHelper();
#line 12 "TransitionsInTagHelperAttributes.cshtml"
-__o = @class;
+ __o = @class;
#line default
#line hidden