File indexing completed on 2024-04-28 04:36:30

0001 /*
0002     SPDX-FileCopyrightText: 2011 Aleix Pol Gonzalez <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_ILANGUAGECHECK_H
0008 #define KDEVPLATFORM_ILANGUAGECHECK_H
0009 
0010 #include "interfacesexport.h"
0011 
0012 #include <QUrl>
0013 #include <QObject>
0014 
0015 namespace KDevelop
0016 {
0017 class DataAccessRepository;
0018 class ControlFlowGraph;
0019 class TopDUContext;
0020 
0021 class CheckData
0022 {
0023     public:
0024         QUrl url;
0025         TopDUContext* top;
0026         ControlFlowGraph* flow;
0027         DataAccessRepository* access;
0028 };
0029 
0030 class KDEVPLATFORMINTERFACES_EXPORT ILanguageCheck
0031 {
0032     public:
0033         virtual ~ILanguageCheck();
0034 
0035         /** Runs the check. This will add problems to the TopDUContext if necessary */
0036         virtual void runCheck(const CheckData& data)=0;
0037 
0038         /** @returns the name of the check */
0039         virtual QString name() const=0;
0040 };
0041 
0042 }
0043 
0044 Q_DECLARE_INTERFACE( KDevelop::ILanguageCheck, "org.kdevelop.ILanguageCheck")
0045 
0046 #endif
0047