private static void AnalyzeSyntaxTree(SyntaxTreeAnalysisContext context)
        {
            // Получаем корневой узел синтаксического дерева
            var root = context.Tree.GetRoot(context.CancellationToken);

            // Ищем все SyntaxTrivia в документе...
            foreach (SyntaxTrivia trivia in root.DescendantTrivia()
                     // ...которые являются однострочными или многострочными комментариями...
                     .Where(t => (t.IsKind(SyntaxKind.SingleLineCommentTrivia) || t.IsKind(SyntaxKind.MultiLineCommentTrivia))
                     // ...содержат неприличное слово
                            && ContainsFWord(t.ToFullString())))
            {
                // Добавляем диагностику
                context.ReportDiagnosticWithSuppressionCheck(
                    Diagnostic.Create(Descriptors.DN1000_WhatTheHeckComment, trivia.GetLocation()));
            }
        }