diff --git a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs index c4ab2e4713..23bcfd812a 100644 --- a/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs +++ b/src/Microsoft.AspNet.Razor/Parser/CSharpCodeParser.Directives.cs @@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Razor.Parser Span.EditHandler.EditorHints = EditorHints.LayoutPage | EditorHints.VirtualPath; var foundNewline = Optional(CSharpSymbolType.NewLine); AddMarkerSymbolIfNecessary(); - Output(SpanKind.MetaCode, foundNewline ? AcceptedCharacters.None : AcceptedCharacters.Any); + Output(SpanKind.MetaCode, foundNewline ? AcceptedCharacters.None : AcceptedCharacters.AnyExceptNewline); } protected virtual void SectionDirective() @@ -286,7 +286,7 @@ namespace Microsoft.AspNet.Razor.Parser // Output the span and finish the block CompleteBlock(); - Output(SpanKind.Code); + Output(SpanKind.Code, AcceptedCharacters.AnyExceptNewline); } private void TagHelperDirective(string keyword, Func buildCodeGenerator) @@ -304,7 +304,7 @@ namespace Microsoft.AspNet.Razor.Parser // If we found whitespace then any content placed within the whitespace MAY cause a destructive change // to the document. We can't accept it. - Output(SpanKind.MetaCode, foundWhitespace ? AcceptedCharacters.None : AcceptedCharacters.Any); + Output(SpanKind.MetaCode, foundWhitespace ? AcceptedCharacters.None : AcceptedCharacters.AnyExceptNewline); if (EndOfFile || At(CSharpSymbolType.NewLine)) { @@ -346,7 +346,7 @@ namespace Microsoft.AspNet.Razor.Parser // Output the span and finish the block CompleteBlock(); - Output(SpanKind.Code); + Output(SpanKind.Code, AcceptedCharacters.AnyExceptNewline); } } } diff --git a/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs b/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs index 57cd53e618..40452ce2dd 100644 --- a/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs +++ b/test/Microsoft.AspNet.Razor.Test/Framework/TestSpanBuilder.cs @@ -305,24 +305,31 @@ namespace Microsoft.AspNet.Razor.Test.Framework public SpanConstructor AsBaseType(string baseType) { - return _self.With(new SetBaseTypeCodeGenerator(baseType)); + return _self + .With(new SetBaseTypeCodeGenerator(baseType)) + .Accepts(AcceptedCharacters.AnyExceptNewline); } public SpanConstructor AsAddTagHelper(string lookupText) { - return _self.With( - new AddOrRemoveTagHelperCodeGenerator(removeTagHelperDescriptors: false, lookupText: lookupText)); + return _self + .With( + new AddOrRemoveTagHelperCodeGenerator(removeTagHelperDescriptors: false, lookupText: lookupText)) + .Accepts(AcceptedCharacters.AnyExceptNewline); } public SpanConstructor AsRemoveTagHelper(string lookupText) { - return _self.With( - new AddOrRemoveTagHelperCodeGenerator(removeTagHelperDescriptors: true, lookupText: lookupText)); + return _self + .With(new AddOrRemoveTagHelperCodeGenerator(removeTagHelperDescriptors: true, lookupText: lookupText)) + .Accepts(AcceptedCharacters.AnyExceptNewline); } public SpanConstructor AsTagHelperPrefixDirective(string prefix) { - return _self.With(new TagHelperPrefixDirectiveCodeGenerator(prefix)); + return _self + .With(new TagHelperPrefixDirectiveCodeGenerator(prefix)) + .Accepts(AcceptedCharacters.AnyExceptNewline); } public SpanConstructor As(ISpanCodeGenerator codeGenerator) diff --git a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs index d7bac05c50..925ad9af58 100644 --- a/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs +++ b/test/Microsoft.AspNet.Razor.Test/Parser/CSharp/CSharpLayoutDirectiveTest.cs @@ -37,6 +37,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.MetaCode("layout ").Accepts(AcceptedCharacters.None), Factory.MetaCode("Foo Bar Baz") .With(new SetLayoutCodeGenerator("Foo Bar Baz")) + .Accepts(AcceptedCharacters.AnyExceptNewline) .WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage) ) ); @@ -63,6 +64,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp Factory.EmptyCSharp() .AsMetaCode() .With(new SetLayoutCodeGenerator(string.Empty)) + .Accepts(AcceptedCharacters.AnyExceptNewline) .WithEditorHints(EditorHints.VirtualPath | EditorHints.LayoutPage) ) );