ClangTools: Add automatic clang tool runner for open documents

Fixes: QTCREATORBUG-23349
Change-Id: I81197180c9d69c7df6184f8fcbf05f2256eaf7f6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
David Schulz
2020-07-22 14:52:06 +02:00
parent 7f562c4d33
commit e176958da1
24 changed files with 781 additions and 79 deletions

View File

@@ -80,6 +80,13 @@ static QStringList mainToolArguments(const QString &mainFilePath, const QString
};
}
static QString virtualFileSystemOverlay(const QString &overlayFilePath)
{
if (overlayFilePath.isEmpty())
return {};
return "--vfsoverlay=" + overlayFilePath;
}
static QStringList clangArguments(const ClangDiagnosticConfig &diagnosticConfig,
const QStringList &baseOptions)
{
@@ -102,11 +109,11 @@ ClangTidyRunner::ClangTidyRunner(const ClangDiagnosticConfig &config, QObject *p
setOutputFileFormat(OutputFileFormat::Yaml);
setExecutable(clangTidyExecutable());
setArgsCreator([this, config](const QStringList &baseOptions) {
return QStringList()
<< tidyChecksArguments(config)
<< mainToolArguments(fileToAnalyze(), outputFilePath())
<< "--"
<< clangArguments(config, baseOptions);
return QStringList() << tidyChecksArguments(config)
<< mainToolArguments(fileToAnalyze(), outputFilePath())
<< virtualFileSystemOverlay(m_overlayFilePath)
<< "--"
<< clangArguments(config, baseOptions);
});
}