ClangTools: Make sure clazy doc URL corresponds to tool version

Note that this will only work with clazy >= 1.10. For earlier versions,
we fall back to the master branch documentation, as before.

Fixes: QTCREATORBUG-25869
Change-Id: I7a8188eda15c4e0548bfaa63aa90f721aa44d6c2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2021-07-26 15:42:28 +02:00
parent c5d080570b
commit 1b1e18a869
7 changed files with 35 additions and 13 deletions

View File

@@ -304,7 +304,7 @@ QString documentationUrl(const QString &checkName)
const QString clangStaticAnalyzerPrefix = "clang-analyzer-core.";
if (name.startsWith(clazyPrefix)) {
name = checkName.mid(clazyPrefix.length());
url = QString(CppTools::Constants::CLAZY_DOCUMENTATION_URL_TEMPLATE).arg(name);
url = clazyDocUrl(name);
} else if (name.startsWith(clangStaticAnalyzerPrefix)) {
url = CppTools::Constants::CLANG_STATIC_ANALYZER_DOCUMENTATION_URL;
} else {
@@ -362,5 +362,16 @@ QString clangTidyDocUrl(const QString &check)
return QString::fromLatin1(urlTemplate).arg(version.toString(), check);
}
QString clazyDocUrl(const QString &check)
{
QVersionNumber version = ClangToolsSettings::clazyVersion();
if (!version.isNull())
version = QVersionNumber(version.majorVersion(), version.minorVersion(), 0);
const QString versionString = version.isNull() ? "master" : version.toString();
static const char urlTemplate[]
= "https://github.com/KDE/clazy/blob/%1/docs/checks/README-%2.md";
return QString::fromLatin1(urlTemplate).arg(versionString, check);
}
} // namespace Internal
} // namespace ClangTools