From 7bb333f15a3a5633d3373416aad4dd900de62aee Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 31 Oct 2019 10:40:03 +0100 Subject: [PATCH] CppTools: Add convenience functions to ClangDiagnosticConfig Change-Id: Iebf01e1ab71dc3500cc6e492c525735f300272ca Reviewed-by: Cristian Adam --- src/plugins/clangtools/clangtoolruncontrol.cpp | 4 ++-- src/plugins/clangtools/clangtoolssettings.cpp | 2 +- src/plugins/cpptools/clangdiagnosticconfig.cpp | 10 ++++++++++ src/plugins/cpptools/clangdiagnosticconfig.h | 4 ++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index 4cf49a46385..82c2ba0b38c 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -258,10 +258,10 @@ QList ClangToolRunWorker::runnerCreators() { QList creators; - if (m_diagnosticConfig.clangTidyChecks() != "-*") + if (m_diagnosticConfig.isClangTidyEnabled()) creators << [this]() { return createRunner(); }; - if (!m_diagnosticConfig.clazyChecks().isEmpty()) { + if (m_diagnosticConfig.isClazyEnabled()) { if (!qEnvironmentVariable("QTC_USE_CLAZY_STANDALONE_PATH").isEmpty()) creators << [this]() { return createRunner(); }; else diff --git a/src/plugins/clangtools/clangtoolssettings.cpp b/src/plugins/clangtools/clangtoolssettings.cpp index fa2e48c844b..cbd15f512fc 100644 --- a/src/plugins/clangtools/clangtoolssettings.cpp +++ b/src/plugins/clangtools/clangtoolssettings.cpp @@ -118,7 +118,7 @@ ClangDiagnosticConfigs importDiagnosticConfigsFromCodeModel() ClangDiagnosticConfigs clangOnlyConfigs; std::tie(tidyClazyConfigs, clangOnlyConfigs) = Utils::partition(configs, [](const ClangDiagnosticConfig &config) { - return !config.clazyChecks().isEmpty() || config.clangTidyChecks() != "-*"; + return config.isClazyEnabled() || config.isClangTidyEnabled(); }); if (!tidyClazyConfigs.isEmpty()) { diff --git a/src/plugins/cpptools/clangdiagnosticconfig.cpp b/src/plugins/cpptools/clangdiagnosticconfig.cpp index 32ef607b1a7..7b318a61f9a 100644 --- a/src/plugins/cpptools/clangdiagnosticconfig.cpp +++ b/src/plugins/cpptools/clangdiagnosticconfig.cpp @@ -130,6 +130,11 @@ void ClangDiagnosticConfig::setClangTidyChecks(const QString &checks) m_clangTidyChecks = checks; } +bool ClangDiagnosticConfig::isClangTidyEnabled() const +{ + return m_clangTidyMode != TidyMode::UseCustomChecks || clangTidyChecks() != "-*"; +} + QString ClangDiagnosticConfig::clazyChecks() const { return m_clazyChecks; @@ -140,6 +145,11 @@ void ClangDiagnosticConfig::setClazyChecks(const QString &checks) m_clazyChecks = checks; } +bool ClangDiagnosticConfig::isClazyEnabled() const +{ + return m_clazyMode != ClazyMode::UseCustomChecks || !m_clazyChecks.isEmpty(); +} + static QString convertToNewClazyChecksFormat(const QString &checks) { // Before Qt Creator 4.9 valid values for checks were: "", "levelN". diff --git a/src/plugins/cpptools/clangdiagnosticconfig.h b/src/plugins/cpptools/clangdiagnosticconfig.h index c0cf48cdec3..76f5983c1de 100644 --- a/src/plugins/cpptools/clangdiagnosticconfig.h +++ b/src/plugins/cpptools/clangdiagnosticconfig.h @@ -71,6 +71,8 @@ public: QString clangTidyChecks() const; void setClangTidyChecks(const QString &checks); + bool isClangTidyEnabled() const; + // Clazy enum class ClazyMode { @@ -83,6 +85,8 @@ public: QString clazyChecks() const; void setClazyChecks(const QString &checks); + bool isClazyEnabled() const; + bool operator==(const ClangDiagnosticConfig &other) const; bool operator!=(const ClangDiagnosticConfig &other) const;