forked from qt-creator/qt-creator
Clang: Add default configurations with Clang-Tidy checks
The first configuration contains most of checks which make sense for most of generic projects. The second configuration is extremely slow but plays the role of Clang static analyzer. For the sake of viewing these checks Clang-Tidy checks tree is modified to be expandable in read-only mode. Change-Id: I41c4ee26bcdf05384507427b842d61e255d59bf7 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
@@ -37,8 +37,9 @@ static void addConfigForQuestionableConstructs(ClangDiagnosticConfigsModel &mode
|
||||
{
|
||||
ClangDiagnosticConfig config;
|
||||
config.setId("Builtin.Questionable");
|
||||
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
|
||||
"Warnings for questionable constructs"));
|
||||
config.setDisplayName(QCoreApplication::translate(
|
||||
"ClangDiagnosticConfigsModel",
|
||||
"Clang-only checks for questionable constructs"));
|
||||
config.setIsReadOnly(true);
|
||||
config.setClangOptions(QStringList{
|
||||
QStringLiteral("-Wall"),
|
||||
@@ -53,7 +54,7 @@ static void addConfigForPedanticWarnings(ClangDiagnosticConfigsModel &model)
|
||||
ClangDiagnosticConfig config;
|
||||
config.setId("Builtin.Pedantic");
|
||||
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
|
||||
"Pedantic Warnings"));
|
||||
"Clang-only pedantic checks"));
|
||||
config.setIsReadOnly(true);
|
||||
config.setClangOptions(QStringList{QStringLiteral("-Wpedantic")});
|
||||
|
||||
@@ -64,8 +65,9 @@ static void addConfigForAlmostEveryWarning(ClangDiagnosticConfigsModel &model)
|
||||
{
|
||||
ClangDiagnosticConfig config;
|
||||
config.setId(Constants::CPP_CLANG_BUILTIN_CONFIG_ID_EVERYTHING_WITH_EXCEPTIONS);
|
||||
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
|
||||
"Warnings for almost everything"));
|
||||
config.setDisplayName(QCoreApplication::translate(
|
||||
"ClangDiagnosticConfigsModel",
|
||||
"Clang-only checks for almost everything"));
|
||||
config.setIsReadOnly(true);
|
||||
config.setClangOptions(QStringList{
|
||||
QStringLiteral("-Weverything"),
|
||||
@@ -86,11 +88,56 @@ static void addConfigForAlmostEveryWarning(ClangDiagnosticConfigsModel &model)
|
||||
model.appendOrUpdate(config);
|
||||
}
|
||||
|
||||
static void addConfigForTidy(ClangDiagnosticConfigsModel &model)
|
||||
{
|
||||
ClangDiagnosticConfig config;
|
||||
config.setId("Builtin.Tidy");
|
||||
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
|
||||
"Clang-Tidy thorough checks"));
|
||||
config.setIsReadOnly(true);
|
||||
config.setClangOptions(QStringList{
|
||||
QStringLiteral("-w"),
|
||||
});
|
||||
config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::ChecksPrefixList);
|
||||
config.setClangTidyChecks("-*,"
|
||||
"bugprone-*,"
|
||||
"cppcoreguidelines-*,"
|
||||
"misc-*,"
|
||||
"modernize-*,"
|
||||
"performance-*,"
|
||||
"readability-*,"
|
||||
"-cppcoreguidelines-owning-memory,"
|
||||
"-readability-braces-around-statements,"
|
||||
"-readability-implicit-bool-conversion,"
|
||||
"-readability-named-parameter");
|
||||
|
||||
model.appendOrUpdate(config);
|
||||
}
|
||||
|
||||
static void addConfigForClangAnalyze(ClangDiagnosticConfigsModel &model)
|
||||
{
|
||||
ClangDiagnosticConfig config;
|
||||
config.setId("Builtin.TidyClangAnalyze");
|
||||
config.setDisplayName(QCoreApplication::translate(
|
||||
"ClangDiagnosticConfigsModel",
|
||||
"Clang-Tidy static analyzer checks"));
|
||||
config.setIsReadOnly(true);
|
||||
config.setClangOptions(QStringList{
|
||||
QStringLiteral("-w"),
|
||||
});
|
||||
config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::ChecksPrefixList);
|
||||
config.setClangTidyChecks("-*,clang-analyzer-*");
|
||||
|
||||
model.appendOrUpdate(config);
|
||||
}
|
||||
|
||||
static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model)
|
||||
{
|
||||
addConfigForPedanticWarnings(model);
|
||||
addConfigForQuestionableConstructs(model);
|
||||
addConfigForAlmostEveryWarning(model);
|
||||
addConfigForTidy(model);
|
||||
addConfigForClangAnalyze(model);
|
||||
}
|
||||
|
||||
ClangDiagnosticConfigsModel::ClangDiagnosticConfigsModel(const ClangDiagnosticConfigs &customConfigs)
|
||||
|
||||
Reference in New Issue
Block a user