Clang/ClangTools: Separate custom diagnostic configs

Add a separate pool of custom diagnostic configs for the
ClangTools plugin. That is, the diagnostic configs in

  Menu: Tools > C++ > Code Model

are not shared anymore with the configs at

  Menu: Tools > Analyzer > ClangTools

On plugin initialization of ClangTools, move tidy/clazy related configs
to ClangTools.

Change-Id: Id06087a58b53e466a3d7bbac669550c5fbe9899d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-09-25 15:46:15 +02:00
parent d2648db914
commit b895dfa382
35 changed files with 523 additions and 443 deletions

View File

@@ -39,7 +39,6 @@
#include <cpptools/builtincursorinfo.h>
#include <cpptools/clangdiagnosticconfigsmodel.h>
#include <cpptools/clangdiagnosticconfigsmodel.h>
#include <cpptools/compileroptionsbuilder.h>
#include <cpptools/cppcodemodelsettings.h>
#include <cpptools/cppmodelmanager.h>
@@ -480,8 +479,8 @@ private:
ClangProjectSettings &projectSettings = getProjectSettings(m_projectPart.project);
if (!projectSettings.useGlobalConfig()) {
const Core::Id warningConfigId = projectSettings.warningConfigId();
const CppTools::ClangDiagnosticConfigsModel configsModel(
CppTools::codeModelSettings()->clangCustomDiagnosticConfigs());
const CppTools::ClangDiagnosticConfigsModel configsModel
= CppTools::diagnosticConfigsModel();
if (configsModel.hasConfigWithId(warningConfigId)) {
addDiagnosticOptionsForConfig(configsModel.configWithId(warningConfigId));
return;
@@ -500,42 +499,6 @@ private:
: CppTools::UseBuildSystemWarnings::No;
m_options.append(diagnosticConfig.clangOptions());
addClangTidyOptions(diagnosticConfig);
addClazyOptions(diagnosticConfig.clazyChecks());
}
void addClangTidyOptions(const CppTools::ClangDiagnosticConfig &diagnosticConfig)
{
using Mode = CppTools::ClangDiagnosticConfig::TidyMode;
Mode tidyMode = diagnosticConfig.clangTidyMode();
if (tidyMode == Mode::Disabled)
return;
m_options.append(CppTools::XclangArgs({"-add-plugin", "clang-tidy"}));
if (tidyMode == Mode::File)
return;
const QString checks = diagnosticConfig.clangTidyChecks();
if (!checks.isEmpty())
m_options.append(CppTools::XclangArgs({"-plugin-arg-clang-tidy", "-checks=" + checks}));
}
void addClazyOptions(const QString &checks)
{
if (checks.isEmpty())
return;
m_options.append(CppTools::XclangArgs({"-add-plugin",
"clazy",
"-plugin-arg-clazy",
"enable-all-fixits",
"-plugin-arg-clazy",
"no-autowrite-fixits",
"-plugin-arg-clazy",
checks,
"-plugin-arg-clazy",
"ignore-included-files"}));
}
void addGlobalDiagnosticOptions()