Rename CommentPopulator

This commit is contained in:
Tamas Vajk
2021-01-19 15:51:38 +01:00
parent 48d24b2264
commit 40186db768
3 changed files with 14 additions and 17 deletions

View File

@@ -374,9 +374,14 @@ namespace Semmle.Extraction.CSharp
if (!upToDate)
{
var cx = extractor.CreateContext(compilation.Clone(), trapWriter, new SourceScope(tree), AddAssemblyTrapPrefix);
CompilationUnitVisitor.Extract(cx, tree.GetRoot());
// Ensure that the file itself is populated in case the source file is totally empty
var root = tree.GetRoot();
Extraction.Entities.File.Create(cx, root.SyntaxTree.FilePath);
var csNode = (CSharpSyntaxNode)root;
csNode.Accept(new CompilationUnitVisitor(cx));
cx.PopulateAll();
TriviaPopulator.ExtractCommentBlocks(cx, cx.CommentGenerator);
CommentPopulator.ExtractCommentBlocks(cx, cx.CommentGenerator);
cx.PopulateAll();
}
}

View File

@@ -7,9 +7,9 @@ using System;
namespace Semmle.Extraction.CSharp.Populators
{
/// <summary>
/// Populators for trivias.
/// Populators for comments.
/// </summary>
public static class TriviaPopulator
public static class CommentPopulator
{
public static void ExtractCommentBlocks(Context cx, ICommentGenerator gen)
{
@@ -33,7 +33,7 @@ namespace Semmle.Extraction.CSharp.Populators
});
}
public static void ExtractTrivia(Context cx, SyntaxTrivia trivia)
public static void ExtractComment(Context cx, SyntaxTrivia trivia)
{
switch (trivia.Kind())
{

View File

@@ -7,7 +7,7 @@ namespace Semmle.Extraction.CSharp.Populators
{
internal class CompilationUnitVisitor : TypeOrNamespaceVisitor
{
private CompilationUnitVisitor(Context cx)
public CompilationUnitVisitor(Context cx)
: base(cx, cx.TrapWriter.Writer, null) { }
public override void VisitExternAliasDirective(ExternAliasDirectiveSyntax node)
@@ -26,26 +26,18 @@ namespace Semmle.Extraction.CSharp.Populators
// Gather comments:
foreach (var trivia in compilationUnit.DescendantTrivia(compilationUnit.Span, descendIntoTrivia: true))
{
TriviaPopulator.ExtractTrivia(cx, trivia);
CommentPopulator.ExtractComment(cx, trivia);
}
foreach (var trivia in compilationUnit.GetLeadingTrivia())
{
TriviaPopulator.ExtractTrivia(cx, trivia);
CommentPopulator.ExtractComment(cx, trivia);
}
foreach (var trivia in compilationUnit.GetTrailingTrivia())
{
TriviaPopulator.ExtractTrivia(cx, trivia);
CommentPopulator.ExtractComment(cx, trivia);
}
}
public static void Extract(Context cx, SyntaxNode unit)
{
// Ensure that the file itself is populated in case the source file is totally empty
Extraction.Entities.File.Create(cx, unit.SyntaxTree.FilePath);
((CSharpSyntaxNode)unit).Accept(new CompilationUnitVisitor(cx));
}
}
}