2014-09-25 11:11:58 +02:00
|
|
|
/****************************************************************************
|
|
|
|
|
**
|
2016-01-14 10:59:10 +01:00
|
|
|
** Copyright (C) 2016 The Qt Company Ltd.
|
|
|
|
|
** Contact: https://www.qt.io/licensing/
|
2014-09-25 11:11:58 +02:00
|
|
|
**
|
2016-01-14 10:59:10 +01:00
|
|
|
** This file is part of Qt Creator.
|
2014-09-25 11:11:58 +02:00
|
|
|
**
|
2016-01-14 10:59:10 +01:00
|
|
|
** Commercial License Usage
|
|
|
|
|
** Licensees holding valid commercial Qt licenses may use this file in
|
|
|
|
|
** accordance with the commercial license agreement provided with the
|
2014-09-25 11:11:58 +02:00
|
|
|
** Software or, alternatively, in accordance with the terms contained in
|
2016-01-14 10:59:10 +01:00
|
|
|
** a written agreement between you and The Qt Company. For licensing terms
|
|
|
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
|
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
2014-09-25 11:11:58 +02:00
|
|
|
**
|
2016-01-14 10:59:10 +01:00
|
|
|
** GNU General Public License Usage
|
|
|
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
|
|
|
** General Public License version 3 as published by the Free Software
|
|
|
|
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
|
|
|
** included in the packaging of this file. Please review the following
|
|
|
|
|
** information to ensure the GNU General Public License requirements will
|
|
|
|
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
2014-09-25 11:11:58 +02:00
|
|
|
**
|
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
2016-03-18 07:55:01 +01:00
|
|
|
#pragma once
|
2014-09-25 11:11:58 +02:00
|
|
|
|
2019-09-25 15:46:15 +02:00
|
|
|
#include <cpptools/clangdiagnosticconfig.h>
|
2015-07-07 15:24:47 +02:00
|
|
|
|
2021-04-12 12:58:52 +02:00
|
|
|
#include <utils/id.h>
|
2020-07-21 13:11:01 +02:00
|
|
|
#include <utils/optional.h>
|
|
|
|
|
|
2014-09-25 11:11:58 +02:00
|
|
|
#include <QtGlobal>
|
|
|
|
|
|
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
|
class QString;
|
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
|
|
2019-09-25 15:46:15 +02:00
|
|
|
namespace CppTools { class ClangDiagnosticConfigsModel; }
|
2016-03-02 13:57:37 +01:00
|
|
|
namespace Debugger { class DiagnosticLocation; }
|
2015-06-19 15:37:16 +02:00
|
|
|
|
2018-03-14 12:58:12 +01:00
|
|
|
namespace ClangTools {
|
2014-09-25 11:11:58 +02:00
|
|
|
namespace Internal {
|
|
|
|
|
|
2020-07-21 13:11:01 +02:00
|
|
|
class Diagnostic;
|
|
|
|
|
|
|
|
|
|
enum class FixitStatus {
|
|
|
|
|
NotAvailable,
|
|
|
|
|
NotScheduled,
|
|
|
|
|
Scheduled,
|
|
|
|
|
Applied,
|
|
|
|
|
FailedToApply,
|
|
|
|
|
Invalidated,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
QString createDiagnosticToolTipString(
|
|
|
|
|
const Diagnostic &diagnostic,
|
|
|
|
|
Utils::optional<FixitStatus> status = Utils::nullopt,
|
|
|
|
|
bool showSteps = true);
|
|
|
|
|
|
2020-11-12 14:15:36 +01:00
|
|
|
CppTools::ClangDiagnosticConfig builtinConfig();
|
|
|
|
|
|
2016-03-02 13:57:37 +01:00
|
|
|
QString createFullLocationString(const Debugger::DiagnosticLocation &location);
|
2014-09-25 11:11:58 +02:00
|
|
|
|
2019-06-25 11:10:00 +02:00
|
|
|
QString hintAboutBuildBeforeAnalysis();
|
|
|
|
|
void showHintAboutBuildBeforeAnalysis();
|
|
|
|
|
|
2019-08-28 08:56:22 +02:00
|
|
|
bool isFileExecutable(const QString &filePath);
|
|
|
|
|
|
|
|
|
|
QString shippedClazyStandaloneExecutable();
|
|
|
|
|
QString clazyStandaloneExecutable();
|
2019-10-21 14:59:57 +02:00
|
|
|
QString clazyStandaloneFallbackExecutable();
|
2019-08-28 08:56:22 +02:00
|
|
|
|
|
|
|
|
QString shippedClangTidyExecutable();
|
|
|
|
|
QString clangTidyExecutable();
|
2019-10-21 14:59:57 +02:00
|
|
|
QString clangTidyFallbackExecutable();
|
|
|
|
|
|
|
|
|
|
QString fullPath(const QString &executable);
|
2019-08-28 08:56:22 +02:00
|
|
|
|
2019-11-29 09:52:02 +01:00
|
|
|
QString documentationUrl(const QString &checkName);
|
|
|
|
|
|
2019-09-25 15:46:15 +02:00
|
|
|
CppTools::ClangDiagnosticConfigsModel diagnosticConfigsModel();
|
|
|
|
|
CppTools::ClangDiagnosticConfigsModel diagnosticConfigsModel(
|
|
|
|
|
const CppTools::ClangDiagnosticConfigs &customConfigs);
|
|
|
|
|
|
2020-07-22 14:52:06 +02:00
|
|
|
CppTools::ClangDiagnosticConfig diagnosticConfig(const Utils::Id &diagConfigId);
|
|
|
|
|
|
|
|
|
|
QStringList extraClangToolsPrependOptions();
|
|
|
|
|
QStringList extraClangToolsAppendOptions();
|
|
|
|
|
|
2021-04-12 12:58:52 +02:00
|
|
|
inline Utils::Id taskCategory() { return "ClangTools"; }
|
|
|
|
|
|
2014-09-25 11:11:58 +02:00
|
|
|
} // namespace Internal
|
2018-03-14 12:58:12 +01:00
|
|
|
} // namespace ClangTools
|