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