Получить комментарий от TextLine - PullRequest
1 голос
/ 21 марта 2019

У меня есть

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

, что дает мне первую строку источника как TextLine.Мне нужно разобрать комментарий как строку, но я бы хотел использовать Roslyn для этого.Как извлечь однострочный комментарий из TextLine, используя Roslyn?

1 Ответ

1 голос
/ 21 марта 2019

Вам нужно проанализировать текст в синтаксическом дереве, а затем искать пустяки того типа, который вы хотите.У вас есть несколько типов синтаксиса, включая 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

...