Converted more parser tests to baselines
- Converted CSharpAutoCompleteTest
This commit is contained in:
parent
31a54fea1b
commit
999c24d78d
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
|
|
@ -63,5 +64,28 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
return combiner.CombinedHash;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var builder = new StringBuilder("AddTagHelper:{");
|
||||
builder.Append(LookupText);
|
||||
builder.Append(";");
|
||||
builder.Append(DirectiveText);
|
||||
builder.Append(";");
|
||||
builder.Append(TypePattern);
|
||||
builder.Append(";");
|
||||
builder.Append(AssemblyName);
|
||||
builder.Append("}");
|
||||
|
||||
if (Diagnostics.Count > 0)
|
||||
{
|
||||
builder.Append(" [");
|
||||
var ids = string.Join(", ", Diagnostics.Select(diagnostic => diagnostic.Id));
|
||||
builder.Append(ids);
|
||||
builder.Append("]");
|
||||
}
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,8 +60,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
// This is used primarily at test time to show an identifiable representation of the chunk generator.
|
||||
|
||||
var builder = new StringBuilder("Directive {");
|
||||
var builder = new StringBuilder("Directive:{");
|
||||
builder.Append(Descriptor.Directive);
|
||||
builder.Append(";");
|
||||
builder.Append(Descriptor.Kind);
|
||||
builder.Append(";");
|
||||
builder.Append(Descriptor.Usage);
|
||||
builder.Append("}");
|
||||
|
||||
if (Diagnostics.Count > 0)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
|
|
@ -15,7 +16,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Descriptor = tokenDescriptor;
|
||||
}
|
||||
|
||||
public DirectiveTokenDescriptor Descriptor { get; set; }
|
||||
public DirectiveTokenDescriptor Descriptor { get; }
|
||||
|
||||
public override void Accept(ParserVisitor visitor, Span span)
|
||||
{
|
||||
|
|
@ -37,5 +38,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
return combiner.CombinedHash;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var builder = new StringBuilder("DirectiveToken {");
|
||||
builder.Append(Descriptor.Name);
|
||||
builder.Append(";");
|
||||
builder.Append(Descriptor.Kind);
|
||||
builder.Append(";Opt:");
|
||||
builder.Append(Descriptor.Optional);
|
||||
builder.Append("}");
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,5 +9,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
visitor.VisitCommentBlock(this, block);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "RazorComment";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
|
|
@ -63,5 +64,28 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
return combiner.CombinedHash;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var builder = new StringBuilder("RemoveTagHelper:{");
|
||||
builder.Append(LookupText);
|
||||
builder.Append(";");
|
||||
builder.Append(DirectiveText);
|
||||
builder.Append(";");
|
||||
builder.Append(TypePattern);
|
||||
builder.Append(";");
|
||||
builder.Append(AssemblyName);
|
||||
builder.Append("}");
|
||||
|
||||
if (Diagnostics.Count > 0)
|
||||
{
|
||||
builder.Append(" [");
|
||||
var ids = string.Join(", ", Diagnostics.Select(diagnostic => diagnostic.Id));
|
||||
builder.Append(ids);
|
||||
builder.Append("]");
|
||||
}
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -73,5 +73,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
visitor.VisitTagHelperBlock(this, block);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "TagHelper";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
|
|
@ -48,5 +49,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
return combiner.CombinedHash;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
var builder = new StringBuilder("TagHelperPrefix:{");
|
||||
builder.Append(Prefix);
|
||||
builder.Append(";");
|
||||
builder.Append(DirectiveText);
|
||||
builder.Append("}");
|
||||
|
||||
if (Diagnostics.Count > 0)
|
||||
{
|
||||
builder.Append(" [");
|
||||
var ids = string.Join(", ", Diagnostics.Select(diagnostic => diagnostic.Id));
|
||||
builder.Append(ids);
|
||||
builder.Append("]");
|
||||
}
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,5 +19,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
//context.ChunkTreeBuilder.EndParentChunk();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "Template";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,136 +10,49 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
public class CSharpAutoCompleteTest : CsHtmlCodeParserTestBase
|
||||
{
|
||||
public CSharpAutoCompleteTest()
|
||||
{
|
||||
UseBaselineTests = true;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FunctionsDirectiveAutoCompleteAtEOF()
|
||||
{
|
||||
// Arrange
|
||||
var chunkGenerator = new DirectiveChunkGenerator(FunctionsDirective.Directive);
|
||||
chunkGenerator.Diagnostics.Add(
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(10, 0, 10), contentLength: 1), FunctionsDirective.Directive.Directive, "}", "{"));
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
"@functions{",
|
||||
new[] { FunctionsDirective.Directive },
|
||||
new DirectiveBlock(chunkGenerator,
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp().AsCodeBlock()));
|
||||
// Arrange, Act & Assert
|
||||
ParseBlockTest("@functions{", new[] { FunctionsDirective.Directive });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SectionDirectiveAutoCompleteAtEOF()
|
||||
{
|
||||
// Arrange
|
||||
var chunkGenerator = new DirectiveChunkGenerator(SectionDirective.Directive);
|
||||
chunkGenerator.Diagnostics.Add(
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(16, 0, 16), contentLength: 1), "section", "}", "{"));
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
"@section Header {",
|
||||
new[] { SectionDirective.Directive },
|
||||
new DirectiveBlock(chunkGenerator,
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Header", CSharpSymbolType.Identifier)
|
||||
.AsDirectiveToken(SectionDirective.Directive.Tokens.First()),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml())));
|
||||
// Arrange, Act & Assert
|
||||
ParseBlockTest("@section Header {", new[] { SectionDirective.Directive });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void VerbatimBlockAutoCompleteAtEOF()
|
||||
{
|
||||
ParseBlockTest("@{",
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsStatement()
|
||||
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" })
|
||||
),
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), Resources.BlockName_Code, "}", "{"));
|
||||
ParseBlockTest("@{");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FunctionsDirectiveAutoCompleteAtStartOfFile()
|
||||
{
|
||||
// Arrange
|
||||
var chunkGenerator = new DirectiveChunkGenerator(FunctionsDirective.Directive);
|
||||
chunkGenerator.Diagnostics.Add(
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(10, 0, 10), contentLength: 1), "functions", "}", "{"));
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
"@functions{" + Environment.NewLine + "foo",
|
||||
new[] { FunctionsDirective.Directive },
|
||||
new DirectiveBlock(chunkGenerator,
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(Environment.NewLine + "foo").AsCodeBlock()));
|
||||
// Arrange, Act & Assert
|
||||
ParseBlockTest("@functions{" + Environment.NewLine + "foo", new[] { FunctionsDirective.Directive });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SectionDirectiveAutoCompleteAtStartOfFile()
|
||||
{
|
||||
// Arrange
|
||||
var chunkGenerator = new DirectiveChunkGenerator(SectionDirective.Directive);
|
||||
chunkGenerator.Diagnostics.Add(
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(16, 0, 16), contentLength: 1), "section", "}", "{"));
|
||||
|
||||
// Act & Assert
|
||||
ParseBlockTest(
|
||||
"@section Header {" + Environment.NewLine + "<p>Foo</p>",
|
||||
new[] { SectionDirective.Directive },
|
||||
new DirectiveBlock(chunkGenerator,
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Header", CSharpSymbolType.Identifier).AsDirectiveToken(SectionDirective.Directive.Tokens.First()),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(Environment.NewLine),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>")),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")))));
|
||||
// Arrange, Act & Assert
|
||||
ParseBlockTest("@section Header {" + Environment.NewLine + "<p>Foo</p>", new[] { SectionDirective.Directive });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void VerbatimBlockAutoCompleteAtStartOfFile()
|
||||
{
|
||||
ParseBlockTest(
|
||||
"@{" + Environment.NewLine + "<p></p>",
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(Environment.NewLine)
|
||||
.AsStatement()
|
||||
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" }),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.Span(SpanKindInternal.Code, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))
|
||||
.With(new StatementChunkGenerator())
|
||||
),
|
||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
||||
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), Resources.BlockName_Code, "}", "{"));
|
||||
ParseBlockTest("@{" + Environment.NewLine + "<p></p>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
Directive block - Gen<Directive:{functions;CodeBlock;Unrestricted} [RZ1006]> - 11 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [functions] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[functions];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (11:0,11) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
Directive block - Gen<Directive:{functions;CodeBlock;Unrestricted} [RZ1006]> - 16 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [functions] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[functions];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LFfoo] - CodeBlockEditHandler;Accepts:Any;CodeBlock - (11:0,11) - Symbols:2
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Directive block - Gen<Directive:{section;RazorBlock;Unrestricted} [RZ1006]> - 17 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[section];
|
||||
Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:WhiteSpace - (8:0,8) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<DirectiveToken {SectionName;Member;Opt:False}> - [Header] - DirectiveTokenEditHandler;Accepts:NonWhiteSpace - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[Header];
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhiteSpace - (15:0,15) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 0 - (17:0,17)
|
||||
Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Directive block - Gen<Directive:{section;RazorBlock;Unrestricted} [RZ1006]> - 29 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[section];
|
||||
Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:WhiteSpace - (8:0,8) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Code span - Gen<DirectiveToken {SectionName;Member;Opt:False}> - [Header] - DirectiveTokenEditHandler;Accepts:NonWhiteSpace - (9:0,9) - Symbols:1
|
||||
CSharpSymbolType.Identifier;[Header];
|
||||
Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhiteSpace - (15:0,15) - Symbols:1
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[}];AtEnd - (16:0,16) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Markup block - Gen<None> - 12 - (17:0,17)
|
||||
Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
|
||||
HtmlSymbolType.NewLine;[LF];
|
||||
Tag block - Gen<None> - 3 - (19:1,0)
|
||||
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:Any - (19:1,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Markup span - Gen<Markup> - [Foo] - SpanEditHandler;Accepts:Any - (22:1,3) - Symbols:1
|
||||
HtmlSymbolType.Text;[Foo];
|
||||
Tag block - Gen<None> - 4 - (25:1,6)
|
||||
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:Any - (25:1,6) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Statement block - Gen<None> - 2 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
|
|
@ -0,0 +1 @@
|
|||
(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Statement block - Gen<None> - 11 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
Markup block - Gen<None> - 7 - (4:1,0)
|
||||
Tag block - Gen<None> - 3 - (4:1,0)
|
||||
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (4:1,0) - Symbols:3
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Tag block - Gen<None> - 4 - (7:1,3)
|
||||
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (7:1,3) - Symbols:4
|
||||
HtmlSymbolType.OpenAngle;[<];
|
||||
HtmlSymbolType.ForwardSlash;[/];
|
||||
HtmlSymbolType.Text;[p];
|
||||
HtmlSymbolType.CloseAngle;[>];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (11:1,7) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
|
|
@ -1,8 +1,15 @@
|
|||
Statement block - NullParentChunkGenerator - 9 - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (0:0,0)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - - (1:0,1)
|
||||
Expression block - ExpressionChunkGenerator - 5 - (1:0,1)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (1:0,1)
|
||||
Code span - ExpressionChunkGenerator - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - foo. - (2:0,2)
|
||||
Code span - StatementChunkGenerator - SpanEditHandler;Accepts:Any - LF - (6:0,6)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (8:1,0)
|
||||
Statement block - Gen<None> - 9 - (0:0,0)
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 5 - (1:0,1)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (2:0,2) - Symbols:2
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
Code span - Gen<Stmt> - [LF] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (8:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
Statement block - NullParentChunkGenerator - 4 - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (0:0,0)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - - (1:0,1)
|
||||
Expression block - ExpressionChunkGenerator - 1 - (1:0,1)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (1:0,1)
|
||||
Code span - ExpressionChunkGenerator - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - - (2:0,2)
|
||||
Code span - StatementChunkGenerator - SpanEditHandler;Accepts:Any - . - (2:0,2)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (3:0,3)
|
||||
Statement block - Gen<None> - 4 - (0:0,0)
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 1 - (1:0,1)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Code span - Gen<Stmt> - [.] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.Dot;[.];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (3:0,3) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
Statement block - NullParentChunkGenerator - 9 - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (0:0,0)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - - (1:0,1)
|
||||
Expression block - ExpressionChunkGenerator - 5 - (1:0,1)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (1:0,1)
|
||||
Code span - ExpressionChunkGenerator - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - foo. - (2:0,2)
|
||||
Code span - StatementChunkGenerator - SpanEditHandler;Accepts:Any - LF - (6:0,6)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (8:1,0)
|
||||
Statement block - Gen<None> - 9 - (0:0,0)
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 5 - (1:0,1)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [foo.] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (2:0,2) - Symbols:2
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
CSharpSymbolType.Dot;[.];
|
||||
Code span - Gen<Stmt> - [LF] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (8:1,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
Statement block - NullParentChunkGenerator - 11 - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (0:0,0)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - LF - (1:0,1)
|
||||
Expression block - ExpressionChunkGenerator - 1 - (7:1,4)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (7:1,4)
|
||||
Code span - ExpressionChunkGenerator - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - - (8:1,5)
|
||||
Code span - StatementChunkGenerator - SpanEditHandler;Accepts:Any - LF - (8:1,5)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (10:2,0)
|
||||
Statement block - Gen<None> - 11 - (0:0,0)
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [LF ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:2
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
Expression block - Gen<Expr> - 1 - (7:1,4)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (7:1,4) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (8:1,5) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Code span - Gen<Stmt> - [LF] - SpanEditHandler;Accepts:Any - (8:1,5) - Symbols:1
|
||||
CSharpSymbolType.NewLine;[LF];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (10:2,0) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
Statement block - NullParentChunkGenerator - 3 - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (0:0,0)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - - (1:0,1)
|
||||
Expression block - ExpressionChunkGenerator - 1 - (1:0,1)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (1:0,1)
|
||||
Code span - ExpressionChunkGenerator - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - - (2:0,2)
|
||||
Code span - StatementChunkGenerator - SpanEditHandler;Accepts:Any - - (2:0,2)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (2:0,2)
|
||||
Statement block - Gen<None> - 3 - (0:0,0)
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Expression block - Gen<Expr> - 1 - (1:0,1)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
Code span - Gen<Expr> - [] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
Code span - Gen<Stmt> - [] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.Unknown;[];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
Statement block - NullParentChunkGenerator - 11 - (0:0,0)
|
||||
Transition span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - @ - (0:0,0)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - { - (1:0,1)
|
||||
Code span - StatementChunkGenerator - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - foo(); - (2:0,2)
|
||||
MetaCode span - NullSpanChunkGenerator - SpanEditHandler;Accepts:None - } - (10:0,10)
|
||||
Statement block - Gen<None> - 11 - (0:0,0)
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||
CSharpSymbolType.Transition;[@];
|
||||
MetaCode span - Gen<None> - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||
CSharpSymbolType.LeftBrace;[{];
|
||||
Code span - Gen<Stmt> - [ foo(); ] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[<null>];AtEOL - (2:0,2) - Symbols:6
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
CSharpSymbolType.Identifier;[foo];
|
||||
CSharpSymbolType.LeftParenthesis;[(];
|
||||
CSharpSymbolType.RightParenthesis;[)];
|
||||
CSharpSymbolType.Semicolon;[;];
|
||||
CSharpSymbolType.WhiteSpace;[ ];
|
||||
MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:1
|
||||
CSharpSymbolType.RightBrace;[}];
|
||||
|
|
|
|||
|
|
@ -278,6 +278,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest(document, null, designTime, new RazorDiagnostic[0]);
|
||||
}
|
||||
|
||||
internal virtual void ParseBlockTest(string document, IEnumerable<DirectiveDescriptor> directives)
|
||||
{
|
||||
ParseBlockTest(document, directives, null);
|
||||
}
|
||||
|
||||
internal virtual void ParseBlockTest(string document, params RazorDiagnostic[] expectedErrors)
|
||||
{
|
||||
ParseBlockTest(document, false, expectedErrors);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
|
|
@ -52,12 +54,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public override void VisitAttributeBlock(AttributeBlockChunkGenerator chunkGenerator, Block block)
|
||||
{
|
||||
WriteBlock(block);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Name);
|
||||
WriteSeparator();
|
||||
WriteLocationTaggedString(chunkGenerator.Prefix);
|
||||
WriteSeparator();
|
||||
WriteLocationTaggedString(chunkGenerator.Suffix);
|
||||
}
|
||||
|
||||
public override void VisitCommentBlock(RazorCommentChunkGenerator chunkGenerator, Block block)
|
||||
|
|
@ -68,21 +64,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public override void VisitDirectiveBlock(DirectiveChunkGenerator chunkGenerator, Block block)
|
||||
{
|
||||
WriteBlock(block);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Descriptor.Directive);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Descriptor.Kind);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Descriptor.Usage);
|
||||
}
|
||||
|
||||
public override void VisitDynamicAttributeBlock(DynamicAttributeBlockChunkGenerator chunkGenerator, Block block)
|
||||
{
|
||||
WriteBlock(block);
|
||||
WriteSeparator();
|
||||
WriteLocationTaggedString(chunkGenerator.Prefix);
|
||||
WriteSeparator();
|
||||
WriteSourceLocation(chunkGenerator.ValueStart);
|
||||
}
|
||||
|
||||
public override void VisitExpressionBlock(ExpressionChunkGenerator chunkGenerator, Block block)
|
||||
|
|
@ -103,14 +89,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public override void VisitAddTagHelperSpan(AddTagHelperChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.LookupText);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.DirectiveText);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.TypePattern);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.AssemblyName);
|
||||
}
|
||||
|
||||
public override void VisitExpressionSpan(ExpressionChunkGenerator chunkGenerator, Span span)
|
||||
|
|
@ -121,39 +99,21 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public override void VisitImportSpan(AddImportChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Namespace);
|
||||
}
|
||||
|
||||
public override void VisitLiteralAttributeSpan(LiteralAttributeChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
WriteLocationTaggedString(chunkGenerator.Prefix);
|
||||
WriteSeparator();
|
||||
WriteLocationTaggedString(chunkGenerator.Value);
|
||||
}
|
||||
|
||||
public override void VisitRemoveTagHelperSpan(RemoveTagHelperChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.LookupText);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.DirectiveText);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.TypePattern);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.AssemblyName);
|
||||
}
|
||||
|
||||
public override void VisitTagHelperPrefixDirectiveSpan(TagHelperPrefixDirectiveChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Prefix);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.DirectiveText);
|
||||
}
|
||||
|
||||
public override void VisitStatementSpan(StatementChunkGenerator chunkGenerator, Span span)
|
||||
|
|
@ -164,12 +124,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public override void VisitDirectiveToken(DirectiveTokenChunkGenerator chunkGenerator, Span span)
|
||||
{
|
||||
WriteSpan(span);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Descriptor.Kind);
|
||||
WriteSeparator();
|
||||
Write(chunkGenerator.Descriptor.Name);
|
||||
WriteSeparator();
|
||||
Write($"Optional: {chunkGenerator.Descriptor.Optional}");
|
||||
}
|
||||
|
||||
protected void WriteBlock(Block block)
|
||||
|
|
@ -177,7 +131,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
WriteIndent();
|
||||
Write($"{block.Type} block");
|
||||
WriteSeparator();
|
||||
Write(block.ChunkGenerator.GetType().Name);
|
||||
Write($"Gen<{block.ChunkGenerator}>");
|
||||
WriteSeparator();
|
||||
Write(block.Length);
|
||||
WriteSeparator();
|
||||
|
|
@ -189,13 +143,45 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
WriteIndent();
|
||||
Write($"{span.Kind} span");
|
||||
WriteSeparator();
|
||||
Write(span.ChunkGenerator.GetType().Name);
|
||||
Write($"Gen<{span.ChunkGenerator}>");
|
||||
WriteSeparator();
|
||||
Write($"[{span.Content}]");
|
||||
WriteSeparator();
|
||||
Write(span.EditHandler);
|
||||
WriteSeparator();
|
||||
Write(span.Content);
|
||||
WriteSeparator();
|
||||
WriteSourceLocation(span.Start);
|
||||
WriteSeparator();
|
||||
Write($"Symbols:{span.Symbols.Count}");
|
||||
|
||||
// Write symbols
|
||||
Depth++;
|
||||
foreach (var symbol in span.Symbols)
|
||||
{
|
||||
WriteNewLine();
|
||||
WriteIndent();
|
||||
WriteSymbol(symbol);
|
||||
}
|
||||
Depth--;
|
||||
}
|
||||
|
||||
protected void WriteSymbol(ISymbol symbol)
|
||||
{
|
||||
var symbolType = string.Empty;
|
||||
IEnumerable<RazorDiagnostic> diagnostics = RazorDiagnostic.EmptyArray;
|
||||
|
||||
if (symbol is HtmlSymbol htmlSymbol)
|
||||
{
|
||||
symbolType = $"{htmlSymbol.Type.GetType().Name}.{htmlSymbol.Type}";
|
||||
diagnostics = htmlSymbol.Errors;
|
||||
}
|
||||
else if (symbol is CSharpSymbol csharpSymbol)
|
||||
{
|
||||
symbolType = $"{csharpSymbol.Type.GetType().Name}.{csharpSymbol.Type}";
|
||||
diagnostics = csharpSymbol.Errors;
|
||||
}
|
||||
|
||||
var symbolString = $"{symbolType};[{symbol.Content}];{string.Join(",", diagnostics.Select(diagnostic => diagnostic.Id))}";
|
||||
Write(symbolString);
|
||||
}
|
||||
|
||||
protected void WriteSourceLocation(SourceLocation location)
|
||||
|
|
|
|||
Loading…
Reference in New Issue