private void RegionReader_FindAllRegions(SyntaxNode root) { foreach (var regionDirective in root.DescendantTrivia().Where(i => i.IsKind(SyntaxKind.RegionDirectiveTrivia))) { RegionReader.Add(new RegionNodes { RegionDirective = regionDirective }); } var count = 0; foreach (var endRegionDirective in root.DescendantTrivia().Where(i => i.IsKind(SyntaxKind.EndRegionDirectiveTrivia))) { RegionReader[count++].EndRegionDirective = endRegionDirective; } foreach (var node in root.DescendantNodes().Where(i => i is MemberDeclarationSyntax || i is StatementSyntax)) { foreach (var regionNodes in RegionReader) { regionNodes.AddNode(node); } } }