从 TextLine 获取评论
Get comment from TextLine
我有
var sourceText = SourceText.From(filestream);
var firstLine = sourceText.Lines.FirstOrDefault();
这给我第一行源代码作为 TextLine。我需要将评论解析为字符串,但我想为此使用 Roslyn。如何使用 Roslyn 从 TextLine 中提取单行注释?
您需要将文本解析成语法树,然后搜索您想要的那种琐事。您有多种语法类型,包括 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();
我有
var sourceText = SourceText.From(filestream);
var firstLine = sourceText.Lines.FirstOrDefault();
这给我第一行源代码作为 TextLine。我需要将评论解析为字符串,但我想为此使用 Roslyn。如何使用 Roslyn 从 TextLine 中提取单行注释?
您需要将文本解析成语法树,然后搜索您想要的那种琐事。您有多种语法类型,包括 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();