public static void RegisterSyntaxNodeActionInNonGenerated <TLanguageKindEnum>(
     this SonarAnalysisContext context,
     GeneratedCodeRecognizer generatedCodeRecognizer,
     Action <SyntaxNodeAnalysisContext> action,
     params TLanguageKindEnum[] syntaxKinds) where TLanguageKindEnum : struct
 {
     context.RegisterSyntaxNodeAction(
         c =>
     {
         if (!c.Node.SyntaxTree.IsGenerated(generatedCodeRecognizer, c.SemanticModel.Compilation))
         {
             action(c);
         }
     },
         syntaxKinds);
 }
 internal void RegisterSyntaxNodeAction <TLanguageKindEnum>(Action <SyntaxNodeAnalysisContext> action, ImmutableArray <TLanguageKindEnum> syntaxKinds) where TLanguageKindEnum : struct
 {
     context.RegisterSyntaxNodeAction(action, syntaxKinds);
 }