diff --git a/DotNetAstGen/SyntaxMetaDataProvider.cs b/DotNetAstGen/SyntaxMetaDataProvider.cs index 0900533..b2e6a34 100644 --- a/DotNetAstGen/SyntaxMetaDataProvider.cs +++ b/DotNetAstGen/SyntaxMetaDataProvider.cs @@ -22,7 +22,8 @@ private static SyntaxMetaData GetNodeMetadata(SyntaxNode node) span.StartLinePosition.Line, span.EndLinePosition.Line, span.StartLinePosition.Character, - span.EndLinePosition.Character + span.EndLinePosition.Character, + node.GetText().ToString().Trim() ); } @@ -53,13 +54,14 @@ public SyntaxMetaData() { } - public SyntaxMetaData(string kind, int lineStart, int lineEnd, int columnStart, int columnEnd) + public SyntaxMetaData(string kind, int lineStart, int lineEnd, int columnStart, int columnEnd, string code) { Kind = kind; LineStart = lineStart; LineEnd = lineEnd; ColumnStart = columnStart; ColumnEnd = columnEnd; + Code = code; } public string Kind { get; set; } = "ast.None"; @@ -67,6 +69,7 @@ public SyntaxMetaData(string kind, int lineStart, int lineEnd, int columnStart, public int LineEnd { get; set; } = -1; public int ColumnStart { get; set; } = -1; public int ColumnEnd { get; set; } = -1; + public string Code { get; set; } = ""; public override string ToString() { diff --git a/DotNetAstGen/SyntaxNodePropertiesResolver.cs b/DotNetAstGen/SyntaxNodePropertiesResolver.cs index 18b8c62..ef52dd5 100644 --- a/DotNetAstGen/SyntaxNodePropertiesResolver.cs +++ b/DotNetAstGen/SyntaxNodePropertiesResolver.cs @@ -17,12 +17,12 @@ internal class SyntaxNodePropertiesResolver : DefaultContractResolver "Alias", "NamespaceOrType", "Arguments", "Expression", "Declaration", "ElementType", "Initializer", "Else", "Condition", "Statement", "Statements", "Variables", "WhenNotNull", "AllowsAnyExpression", "Expressions", "Modifiers", "ReturnType", "IsUnboundGenericName", "Default", "IsConst", "Parameters", "Types", - "ExplicitInterfaceSpecifier", "MetaData", "Kind", "AstRoot", "FileName" + "ExplicitInterfaceSpecifier", "MetaData", "Kind", "AstRoot", "FileName", "Code" }); private readonly List _regexToAllow = new(new[] { - ".*Token$", ".*Keyword$", ".*Lists?$", ".*Body$", "(Line|Column)(Start|End)" + ".*Token$", ".*Keyword$", ".*Lists?$", ".*Body$", "(Line|Column)(Start|End)", ".*Type$", }); private readonly List _regexToIgnore = new(new[]