从TextLine获取评论

问题描述 投票:1回答:1

我有

var sourceText = SourceText.From(filestream);
var firstLine = sourceText.Lines.FirstOrDefault();

它给我第一行源作为TextLine。我需要将注释解析为字符串,但我想使用Roslyn。如何使用Roslyn从TextLine中提取单行注释?

c# roslyn roslyn-code-analysis
1个回答
1
投票

您需要将文本解析为语法树,然后搜索所需类型的琐事。你有几种语法类型,包括SingleLineCommentTrivia, MultiLineCommentTrivia, ...

var tree = CSharpSyntaxTree.ParseText(sourceText, path: filename);
var root = tree.GetCompilationUnitRoot();

var comment = root.DescendantTrivia()
    .OfType<SyntaxTrivia>()
    .FirstOrDefault(s=> s.IsKind(SyntaxKind.SingleLineCommentTrivia)) // Here you decide what you want to filter on
    .ToFullString();

有关详细信息,请参阅https://docs.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.csharp.syntaxkind?view=roslyn-dotnet

© www.soinside.com 2019 - 2024. All rights reserved.