aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-02-23 11:36:18 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-03-19 13:19:00 +0000
commit4d153b4f678a851e3a2f44640d46fb5aed834932 (patch)
tree1d8363fd0ab386a7541978bf406f02cdb8169eb5 /src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
parent1e033d8a085ba7373359c84f4afed37c52c5b27e (diff)
Clang: Add combobox with tidy configuration options
The old way was not flexible enough. With these options it's possible to just use your config file or set tidy command line yourself. Change-Id: I1bace40986668dee5e1b30c9d03090a3fd22e253 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
index d353d06dbc..2b33d44e57 100644
--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
@@ -496,7 +496,7 @@ private:
m_diagnosticConfigId = diagnosticConfig.id();
m_options.append(diagnosticConfig.clangOptions());
- addClangTidyOptions(diagnosticConfig.clangTidyChecks());
+ addClangTidyOptions(diagnosticConfig);
addClazyOptions(diagnosticConfig.clazyChecks());
}
@@ -510,13 +510,26 @@ private:
}
}
- void addClangTidyOptions(const QString &checks)
+ void addClangTidyOptions(const CppTools::ClangDiagnosticConfig &diagnosticConfig)
{
- if (checks.isEmpty())
+ using Mode = CppTools::ClangDiagnosticConfig::TidyMode;
+ Mode tidyMode = diagnosticConfig.clangTidyMode();
+ if (tidyMode == Mode::Disabled)
return;
+ QString checks;
+ if (tidyMode == Mode::ChecksPrefixList) {
+ checks = QStringLiteral("-*") + diagnosticConfig.clangTidyChecksPrefixes();
+ } else if (tidyMode == Mode::ChecksString) {
+ checks = diagnosticConfig.clangTidyChecksString();
+ checks = checks.simplified();
+ checks.replace(" ", "");
+ }
+
addXclangArg("-add-plugin", "clang-tidy");
- addXclangArg("-plugin-arg-clang-tidy", "-checks='-*" + checks + "'");
+
+ if (!checks.isEmpty())
+ addXclangArg("-plugin-arg-clang-tidy", "-checks=" + checks);
}
void addClazyOptions(const QString &checks)