{
    "available_categories" : ["readability", "qt4", "qt6", "containers", "qstring", "cpp", "bug", "performance", "deprecation", "qml"],
    "checks" : [
        {
            "name"  : "qt-keywords",
            "level" : -1,
            "fixits" : [
                {
                    "name" : "qt-keywords"
                }
            ]
        },
        {
            "name"  : "signal-with-return-value",
            "level" : -1,
            "visits_decls" : true

        },
        {
            "name"  : "heap-allocated-small-trivial-type",
            "level" : -1,
            "categories" : ["performance"],
            "visits_decls" : true
        },
        {
            "name"  : "ifndef-define-typo",
            "level" : -1,
            "categories" : ["bug"]
        },
        {
            "name"  : "inefficient-qlist",
            "level" : -1,
            "categories" : ["containers", "performance"],
            "visits_decls" : true
        },
        {
            "name"   : "isempty-vs-count",
            "class_name" : "IsEmptyVSCount",
            "level"  : -1,
            "categories" : ["readability"],
            "visits_stmts" : true
        },
        {
            "name"   : "qrequiredresult-candidates",
            "class_name" : "QRequiredResultCandidates",
            "level"  : -1,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"   : "qstring-varargs",
            "level"  : -1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "qt4-qstring-from-array",
            "class_name" : "Qt4QStringFromArray",
            "level" : -1,
            "categories" : ["qt4", "qstring"],
            "fixits" : [
                {
                    "name" : "qt4-qstring-from-array"
                }
            ],
            "visits_stmts" : true
        },
	{
            "name"  : "qt6-qlatin1string-to-u",
            "class_name" : "Qt6QLatin1StringToU",
            "level" : -1,
            "categories" : ["qt6", "qstring"],
            "fixits" : [
                {
                    "name" : "qt6-qlatin1string-to-u"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"   : "tr-non-literal",
            "level"  : -1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"   : "raw-environment-function",
            "level"  : -1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "container-inside-loop",
            "level" : -1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name" : "qhash-with-char-pointer-key",
            "level" : -1,
            "categories" : ["cpp", "bug"],
            "visits_decls" : true
        },
        {
            "name"  : "overloaded-signal",
            "level" : 0,
            "visits_decls" : true,
            "categories" : ["readability"]
        },
        {
            "name"  : "connect-by-name",
            "level" : 0,
            "categories" : ["bug", "readability"],
            "visits_decls" : true
        },
        {
            "name"  : "connect-non-signal",
            "minimum_qt_version" : 50700,
            "level" : 0,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "qstring-comparison-to-implicit-char",
            "level" : 0,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "wrong-qevent-cast",
            "level" : 0,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "lambda-in-connect",
            "level" : 0,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "lambda-unique-connection",
            "level" : 0,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "qdatetime-utc",
            "class_name" : "QDateTimeUtc",
            "level" : 0,
            "categories" : ["performance"],
            "fixits" : [
                {
                    "name" : "qdatetime-utc"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "qgetenv",
            "class_name" : "QGetEnv",
            "level" : 0,
            "minimum_qt_version" : 50500,
            "categories" : ["performance"],
            "fixits" : [
                {
                    "name" : "qgetenv"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "qstring-insensitive-allocation",
            "level" : 0,
            "categories" : ["performance", "qstring"],
            "visits_stmts" : true
        },
        {
            "name"  : "fully-qualified-moc-types",
            "class_name" : "FullyQualifiedMocTypes",
            "level" : 0,
            "categories" : ["bug", "qml"],
            "visits_decls" : true
        },
        {
            "name"  : "qvariant-template-instantiation",
            "level" : -1,
            "visits_stmts" : true
        },
        {
            "name"  : "unused-non-trivial-variable",
            "level" : 0,
            "categories" : ["readability"],
            "visits_stmts" : true
        },
        {
            "name"  : "connect-not-normalized",
            "level" : 0,
            "categories" : ["performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "mutable-container-key",
            "level" : 0,
            "categories" : ["containers", "bug"],
            "visits_decls" : true
        },
        {
            "name"  : "qenums",
            "level" : 0,
            "minimum_qt_version" : 50500,
            "categories" : ["deprecation"]
        },
        {
            "name"  : "qmap-with-pointer-key",
            "level" : 0,
            "categories" : ["containers", "performance"],
            "visits_decls" : true
        },
        {
            "name"  : "qstring-ref",
            "class_name" : "StringRefCandidates",
            "level" : 0,
            "categories" : ["performance", "qstring"],
            "fixits" : [
                {
                    "name" : "missing-qstringref"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "strict-iterators",
            "level" : 0,
            "categories" : ["containers", "performance", "bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "writing-to-temporary",
            "level" : 0,
            "categories" : ["bug"],
            "options" : [
                {
                    "name" : "widen-criteria"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "container-anti-pattern",
            "level" : 0,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "qcolor-from-literal",
            "level" : 0,
            "categories" : ["performance"],
            "visits_stmts" : true,
            "ifndef" : "CLAZY_DISABLE_AST_MATCHERS"
        },
        {
            "name"  : "qfileinfo-exists",
            "class_name" : "QFileInfoExists",
            "level" : 0,
            "categories" : ["performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "qstring-arg",
            "level" : 0,
            "categories" : ["performance", "qstring"],
            "options" : [
                {
                    "name" : "fillChar-overloads"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "empty-qstringliteral",
            "level" : 0,
            "categories" : ["performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "qt-macros",
            "class_name" : "QtMacros",
            "level" : 0,
            "categories" : ["bug"]
        },
        {
            "name"  : "temporary-iterator",
            "level" : 0,
            "categories" : ["containers", "bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "wrong-qglobalstatic",
            "class_name" : "WrongQGlobalStatic",
            "level" : 0,
            "categories" : ["performance"],
            "visits_stmts" : true
        },
        {
            "name" : "lowercase-qml-type-name",
            "level" : 0,
            "categories" : ["qml", "bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "auto-unexpected-qstringbuilder",
            "class_name" : "AutoUnexpectedQStringBuilder",
            "level" : 1,
            "categories" : ["bug", "qstring"],
            "visits_decls" : true,
            "visits_stmts" : true,
            "fixits" : [
                {
                    "name" : "auto-unexpected-qstringbuilder"
                }
            ]
        },
        {
            "name"  : "connect-3arg-lambda",
            "level" : 1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "const-signal-or-slot",
            "level" : 1,
            "categories" : ["readability", "bug"],
            "visits_decls" : true,
            "visits_stmts" : true
        },
        {
            "name"  : "qproperty-type-mismatch",
            "level" : -1,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "detaching-temporary",
            "level" : 1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "foreach",
            "level" : 1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "incorrect-emit",
            "level" : 1,
            "categories" : ["readability"],
            "visits_stmts" : true
        },
        {
            "name"  : "inefficient-qlist-soft",
            "level" : 1,
            "categories" : ["containers", "performance"],
            "visits_decls" : true
        },
        {
            "name"  : "install-event-filter",
            "level" : 1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "non-pod-global-static",
            "level" : 1,
            "categories" : ["performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "post-event",
            "level" : 1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "qdeleteall",
            "class_name" : "QDeleteAll",
            "level" : 1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "qlatin1string-non-ascii",
            "level" : 1,
            "categories" : ["bug", "qstring"],
            "visits_stmts" : true
        },
        {
            "name"  : "qproperty-without-notify",
            "level" : 1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "qstring-left",
            "level" : 1,
            "categories" : ["bug", "performance", "qstring"],
            "visits_stmts" : true
        },
        {
            "name"  : "range-loop",
            "level" : 1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true,
            "fixits" : [
                {
                    "name" : "range-loop-add-ref"
                },
                {
                    "name" : "range-loop-add-qasconst"
                }
            ]
        },
        {
            "name"  : "returning-data-from-temporary",
            "level" : 1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "rule-of-two-soft",
            "level" : 1,
            "categories" : ["cpp", "bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "child-event-qobject-cast",
            "level" : 1,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "virtual-signal",
            "level" : 1,
            "categories" : ["bug", "readability"],
            "visits_decls" : true
        },
        {
            "name"  : "overridden-signal",
            "level" : 1,
            "categories" : ["bug", "readability"],
            "visits_decls" : true
        },
        {
            "name"  : "qhash-namespace",
            "level" : 1,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "skipped-base-method",
            "level" : 1,
            "categories" : ["bug", "cpp"],
            "visits_stmts" : true
        },
        {
            "name"  : "unneeded-cast",
            "level" : -1,
            "categories" : ["cpp", "readability"],
            "options" : [
                {
                    "name" : "prefer-dynamic-cast-over-qobject"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "ctor-missing-parent-argument",
            "level" : 2,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "base-class-event",
            "level" : 2,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "copyable-polymorphic",
            "level" : 2,
            "categories" : ["cpp", "bug"],
            "visits_decls" : true
        },
        {
            "name"  : "function-args-by-ref",
            "level" : 2,
            "categories" : ["cpp", "performance"],
            "options" : [
                {
                    "name" : "warn-for-overridden-methods"
                }
            ],
            "fixits" : [
                {
                    "name" : "function-args-by-ref"
                }
            ],
            "visits_decls" : true,
            "visits_stmts" : true
        },
        {
            "name"  : "function-args-by-value",
            "level" : 2,
            "categories" : ["cpp", "performance"],
            "options" : [
                {
                    "name" : "warn-for-overridden-methods"
                }
            ],
            "visits_decls" : true,
            "visits_stmts" : true
        },
        {
            "name"  : "global-const-char-pointer",
            "level" : 2,
            "categories" : ["cpp", "performance"],
            "visits_decls" : true
        },
        {
            "name"  : "implicit-casts",
            "level" : 2,
            "categories" : ["cpp", "bug"],
            "options" : [
                {
                    "name" : "bool-to-int"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "missing-qobject-macro",
            "level" : 2,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "missing-typeinfo",
            "class_name" : "MissingTypeInfo",
            "level" : 2,
            "categories" : ["containers", "performance"],
            "visits_decls" : true
        },
        {
            "name"  : "old-style-connect",
            "level" : 2,
            "minimum_qt_version" : 50500,
            "categories" : ["performance"],
            "fixits" : [
                {
                    "name" : "old-style-connect"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "qstring-allocations",
            "level" : 2,
            "minimum_qt_version" : 50000,
            "categories" : ["performance", "qstring"],
            "fixits" : [
                {
                    "name" : "qlatin1string-allocations"
                },
                {
                    "name" : "fromLatin1_fromUtf8-allocations"
                },
                {
                    "name" : "fromCharPtrAllocations"
                }
            ],
            "options" : [
                {
                    "name" : "no-msvc-compat"
                }
            ],
            "visits_stmts" : true
        },
        {
            "name"  : "returning-void-expression",
            "level" : 2,
            "categories" : ["readability", "cpp"],
            "visits_stmts" : true
        },
        {
            "name"  : "rule-of-three",
            "level" : 2,
            "categories" : ["cpp", "bug"],
            "visits_decls" : true
        },
        {
            "name"  : "virtual-call-ctor",
            "level" : 2,
            "categories" : ["cpp", "bug"],
            "visits_decls" : true
        },
        {
            "name"  : "static-pmf",
            "level" : 2,
            "categories" : ["bug"],
            "visits_decls" : true
        },
        {
            "name"  : "assert-with-side-effects",
            "level" : -1,
            "categories" : ["bug"],
            "visits_stmts" : true
        },
        {
            "name"  : "detaching-member",
            "level" : -1,
            "categories" : ["containers", "performance"],
            "visits_stmts" : true
        },
        {
            "name"  : "thread-with-slots",
            "level" : -1,
            "categories" : ["bug"],
            "visits_decls" : true,
            "visits_stmts" : true
        },
        {
            "name"  : "reserve-candidates",
            "level" : -1,
            "categories" : ["containers"],
            "visits_stmts" : true
        },
        {
            "name"  : "jni-signatures",
            "level" : -1,
            "categories" : ["bug"],
            "visits_stmts" : true
        }
    ]
}
