Fix: Missing Html intellisense after directives

This commit is contained in:
Ajay Bhargav Baaskaran 2018-03-19 17:14:22 -07:00
parent 79e744f691
commit 9dc7c65205
2 changed files with 13 additions and 10 deletions

View File

@ -1779,7 +1779,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
} }
Span.ChunkGenerator = SpanChunkGenerator.Null; Span.ChunkGenerator = SpanChunkGenerator.Null;
Output(SpanKindInternal.None, AcceptedCharactersInternal.WhiteSpace);
// This should contain the optional whitespace after the optional semicolon and the new line.
// Output as Markup as we want intellisense here.
Output(SpanKindInternal.Markup, AcceptedCharactersInternal.WhiteSpace);
break; break;
case DirectiveKind.RazorBlock: case DirectiveKind.RazorBlock:
AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true));

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.EmptyHtml(), Factory.EmptyHtml(),
new DirectiveBlock(new DirectiveChunkGenerator(descriptor), new DirectiveBlock(new DirectiveChunkGenerator(descriptor),
Factory.CodeTransition(), Factory.CodeTransition(),
@ -75,7 +75,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.EmptyHtml(), Factory.EmptyHtml(),
new DirectiveBlock(chunkGenerator, new DirectiveBlock(chunkGenerator,
Factory.CodeTransition(), Factory.CodeTransition(),
@ -120,7 +120,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(customDescriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(customDescriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.EmptyHtml(), Factory.EmptyHtml(),
new DirectiveBlock(new DirectiveChunkGenerator(somethingDescriptor), new DirectiveBlock(new DirectiveChunkGenerator(somethingDescriptor),
Factory.CodeTransition(), Factory.CodeTransition(),
@ -176,14 +176,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(customDescriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(customDescriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.Markup(Environment.NewLine), Factory.Markup(Environment.NewLine),
new DirectiveBlock(new DirectiveChunkGenerator(somethingDescriptor), new DirectiveBlock(new DirectiveChunkGenerator(somethingDescriptor),
Factory.CodeTransition(), Factory.CodeTransition(),
Factory.MetaCode("something").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("something").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "Else", markup: false).AsDirectiveToken(somethingDescriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "Else", markup: false).AsDirectiveToken(somethingDescriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.Markup(Environment.NewLine), Factory.Markup(Environment.NewLine),
BlockFactory.MarkupTagBlock("<p>"), BlockFactory.MarkupTagBlock("<p>"),
Factory.Markup("This is extra"), Factory.Markup("This is extra"),
@ -350,7 +350,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
} }
[Fact] [Fact]
public void BuiltInDirectiveErorrsIfNotAtStartOfLine() public void BuiltInDirectiveErrorsIfNotAtStartOfLine()
{ {
// Act & Assert // Act & Assert
ParseCodeBlockTest("{ @addTagHelper \"*, Foo\"" + Environment.NewLine + "}", ParseCodeBlockTest("{ @addTagHelper \"*, Foo\"" + Environment.NewLine + "}",
@ -381,7 +381,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
} }
[Fact] [Fact]
public void ExtensibleDirectiveErorrsIfNotAtStartOfLine() public void ExtensibleDirectiveErrorsIfNotAtStartOfLine()
{ {
// Arrange // Arrange
var descriptor = DirectiveDescriptor.CreateDirective( var descriptor = DirectiveDescriptor.CreateDirective(
@ -407,7 +407,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None), Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false).AsDirectiveToken(descriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), Factory.Span(SpanKindInternal.Markup, Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
Factory.EmptyCSharp().AsStatement(), Factory.EmptyCSharp().AsStatement(),
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)));
} }
@ -769,7 +769,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
Factory.Span(SpanKindInternal.Code, "\"hello\"", markup: false).AsDirectiveToken(descriptor.Tokens[0]), Factory.Span(SpanKindInternal.Code, "\"hello\"", markup: false).AsDirectiveToken(descriptor.Tokens[0]),
Factory.Span(SpanKindInternal.None, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.Span(SpanKindInternal.None, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.MetaCode(";").Accepts(AcceptedCharactersInternal.WhiteSpace), Factory.MetaCode(";").Accepts(AcceptedCharactersInternal.WhiteSpace),
Factory.Span(SpanKindInternal.None, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace))); Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)));
} }
[Theory] [Theory]