diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-02-23 11:36:18 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-03-19 13:19:00 +0000 |
commit | 4d153b4f678a851e3a2f44640d46fb5aed834932 (patch) | |
tree | 1d8363fd0ab386a7541978bf406f02cdb8169eb5 /src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp | |
parent | 1e033d8a085ba7373359c84f4afed37c52c5b27e (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.cpp | 21 |
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) |