diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2020-05-27 15:04:59 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2020-05-28 09:20:06 +0000 |
commit | 9dafc323b5a8a3234caed740863944f733683680 (patch) | |
tree | 04b11112de6c29776285b566fc7191dd5406e2c2 | |
parent | 13ad8163080153cb5d1ea39238069b5cca8f9651 (diff) |
CppTools/ClangTools: Fix saving diagnostic configs for code model
As ClangDiagnosticConfig() has tidy and clazy enabled by default now,
the ClangTools' importDiagnosticConfigsFromCodeModel() takes diagnostic
configs on start up away from CppCodeModelSettings.
Ensure that built-in configs do not have tidy/clazy enabled by default.
Also, when importing, look at the actually enabled checks.
Fixes: QTCREATORBUG-23717
Change-Id: Id8370ae2fff2392fc94aa957fd33c1954aff5594
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/plugins/clangtools/clangtoolssettings.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cpptools/cppcodemodelsettings.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cpptools/cpptoolsreuse.cpp | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/clangtools/clangtoolssettings.cpp b/src/plugins/clangtools/clangtoolssettings.cpp index cbd15f512f..ad704728ac 100644 --- a/src/plugins/clangtools/clangtoolssettings.cpp +++ b/src/plugins/clangtools/clangtoolssettings.cpp @@ -118,7 +118,8 @@ ClangDiagnosticConfigs importDiagnosticConfigsFromCodeModel() ClangDiagnosticConfigs clangOnlyConfigs; std::tie(tidyClazyConfigs, clangOnlyConfigs) = Utils::partition(configs, [](const ClangDiagnosticConfig &config) { - return config.isClazyEnabled() || config.isClangTidyEnabled(); + return !config.clazyChecks().isEmpty() + || (!config.clangTidyChecks().isEmpty() && config.clangTidyChecks() != "-*"); }); if (!tidyClazyConfigs.isEmpty()) { diff --git a/src/plugins/cpptools/cppcodemodelsettings.cpp b/src/plugins/cpptools/cppcodemodelsettings.cpp index 8b8874c958..ee90d178b8 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.cpp +++ b/src/plugins/cpptools/cppcodemodelsettings.cpp @@ -80,6 +80,8 @@ static ClangDiagnosticConfigs removedBuiltinConfigs() "Pedantic checks")); config.setIsReadOnly(true); config.setClangOptions(QStringList{QStringLiteral("-Wpedantic")}); + config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks); + config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks); configs << config; // Everything with exceptions @@ -104,6 +106,8 @@ static ClangDiagnosticConfigs removedBuiltinConfigs() QStringLiteral("-Wno-missing-prototypes"), // Not optimal for C projects. QStringLiteral("-Wno-used-but-marked-unused"), // e.g. QTest::qWait }); + config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks); + config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks); configs << config; return configs; diff --git a/src/plugins/cpptools/cpptoolsreuse.cpp b/src/plugins/cpptools/cpptoolsreuse.cpp index 37a00673b3..d98febf697 100644 --- a/src/plugins/cpptools/cpptoolsreuse.cpp +++ b/src/plugins/cpptools/cpptoolsreuse.cpp @@ -356,6 +356,8 @@ static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model) "-Wall", "-Wextra", }); + config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks); + config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks); model.appendOrUpdate(config); // Warning flags from build system @@ -364,6 +366,8 @@ static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model) config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel", "Build-system warnings")); config.setIsReadOnly(true); + config.setClazyMode(ClangDiagnosticConfig::ClazyMode::UseCustomChecks); + config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::UseCustomChecks); config.setUseBuildSystemWarnings(true); model.appendOrUpdate(config); } |