Clang: Make clazy/tidy options part of the diagnostic config

As a side effect, clazy/tidy options become available for project
specific customization in the projects mode.

Change-Id: Id72762dedd857915139c15f532d2f1c6d1f43edb
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-01-26 10:27:58 +01:00
parent 5b1ae09fbf
commit 33b6fe812a
13 changed files with 212 additions and 191 deletions

View File

@@ -55,6 +55,12 @@ static QString clangDiagnosticConfigsArrayDisplayNameKey()
static QString clangDiagnosticConfigsArrayWarningsKey()
{ return QLatin1String("diagnosticOptions"); }
static QString clangDiagnosticConfigsArrayClangTidyChecksKey()
{ return QLatin1String("clangTidyChecks"); }
static QString clangDiagnosticConfigsArrayClazyChecksKey()
{ return QLatin1String("clazyChecks"); }
static QString pchUsageKey()
{ return QLatin1String(Constants::CPPTOOLS_MODEL_MANAGER_PCH_USAGE); }
@@ -67,12 +73,6 @@ static QString skipIndexingBigFilesKey()
static QString indexerFileSizeLimitKey()
{ return QLatin1String(Constants::CPPTOOLS_INDEXER_FILE_SIZE_LIMIT); }
static QString tidyChecksKey()
{ return QLatin1String(Constants::CPPTOOLS_TIDY_CHECKS); }
static QString clazyChecksKey()
{ return QLatin1String(Constants::CPPTOOLS_CLAZY_CHECKS); }
static ClangDiagnosticConfigs customDiagnosticConfigsFromSettings(QSettings *s)
{
QTC_ASSERT(s->group() == QLatin1String(Constants::CPPTOOLS_SETTINGSGROUP),
@@ -87,7 +87,9 @@ static ClangDiagnosticConfigs customDiagnosticConfigsFromSettings(QSettings *s)
ClangDiagnosticConfig config;
config.setId(Core::Id::fromSetting(s->value(clangDiagnosticConfigsArrayIdKey())));
config.setDisplayName(s->value(clangDiagnosticConfigsArrayDisplayNameKey()).toString());
config.setCommandLineWarnings(s->value(clangDiagnosticConfigsArrayWarningsKey()).toStringList());
config.setClangOptions(s->value(clangDiagnosticConfigsArrayWarningsKey()).toStringList());
config.setClangTidyChecks(s->value(clangDiagnosticConfigsArrayClangTidyChecksKey()).toString());
config.setClazyChecks(s->value(clangDiagnosticConfigsArrayClazyChecksKey()).toString());
configs.append(config);
}
s->endArray();
@@ -123,11 +125,6 @@ void CppCodeModelSettings::fromSettings(QSettings *s)
const QVariant indexerFileSizeLimit = s->value(indexerFileSizeLimitKey(), 5);
setIndexerFileSizeLimitInMb(indexerFileSizeLimit.toInt());
const QVariant tidyChecks = s->value(tidyChecksKey(), QString());
setTidyChecks(tidyChecks.toString());
const QVariant clazyChecks = s->value(clazyChecksKey(), QString());
setClazyChecks(clazyChecks.toString());
s->endGroup();
emit changed();
@@ -146,7 +143,9 @@ void CppCodeModelSettings::toSettings(QSettings *s)
s->setArrayIndex(i);
s->setValue(clangDiagnosticConfigsArrayIdKey(), config.id().toSetting());
s->setValue(clangDiagnosticConfigsArrayDisplayNameKey(), config.displayName());
s->setValue(clangDiagnosticConfigsArrayWarningsKey(), config.commandLineWarnings());
s->setValue(clangDiagnosticConfigsArrayWarningsKey(), config.clangOptions());
s->setValue(clangDiagnosticConfigsArrayClangTidyChecksKey(), config.clangTidyChecks());
s->setValue(clangDiagnosticConfigsArrayClazyChecksKey(), config.clazyChecks());
}
s->endArray();
@@ -156,8 +155,6 @@ void CppCodeModelSettings::toSettings(QSettings *s)
s->setValue(interpretAmbiguousHeadersAsCHeadersKey(), interpretAmbigiousHeadersAsCHeaders());
s->setValue(skipIndexingBigFilesKey(), skipIndexingBigFiles());
s->setValue(indexerFileSizeLimitKey(), indexerFileSizeLimitInMb());
s->setValue(tidyChecksKey(), tidyChecks());
s->setValue(clazyChecksKey(), clazyChecks());
s->endGroup();
@@ -239,23 +236,3 @@ void CppCodeModelSettings::setIndexerFileSizeLimitInMb(int sizeInMB)
{
m_indexerFileSizeLimitInMB = sizeInMB;
}
QString CppCodeModelSettings::tidyChecks() const
{
return m_tidyChecks;
}
void CppCodeModelSettings::setTidyChecks(QString checks)
{
m_tidyChecks = checks;
}
QString CppCodeModelSettings::clazyChecks() const
{
return m_clazyChecks;
}
void CppCodeModelSettings::setClazyChecks(QString checks)
{
m_clazyChecks = checks;
}