File indexing completed on 2024-05-05 04:40:13

0001 /*
0002     SPDX-FileCopyrightText: 2008 Hamish Rodda <rodda@kde.org>
0003     SPDX-FileCopyrightText: 2008-2009 David Nolden <david.nolden.kdevelop@art-master.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef KDEVPLATFORM_PLUGIN_PROBLEMHIGHLIGHTER_H
0009 #define KDEVPLATFORM_PLUGIN_PROBLEMHIGHLIGHTER_H
0010 
0011 #include <language/duchain/problem.h>
0012 #include <interfaces/iproblem.h>
0013 
0014 #include <KTextEditor/MovingRange>
0015 
0016 #include <QPointer>
0017 
0018 class ProblemHighlighter : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit ProblemHighlighter(KTextEditor::Document* document);
0023     ~ProblemHighlighter() override;
0024 
0025     KTextEditor::Document* document() const
0026     {
0027         return m_document;
0028     }
0029 
0030     void setProblems(const QVector<KDevelop::IProblem::Ptr>& problems);
0031 
0032 private Q_SLOTS:
0033     void aboutToRemoveText(const KTextEditor::Range& range);
0034     void clearProblems();
0035 
0036 private:
0037     QPointer<KTextEditor::Document> m_document;
0038     QList<KTextEditor::MovingRange*> m_topHLRanges;
0039     QVector<KDevelop::IProblem::Ptr> m_problems;
0040 
0041 public Q_SLOTS:
0042     void settingsChanged();
0043 };
0044 
0045 #endif // KDEVPLATFORM_PLUGIN_PROBLEMHIGHLIGHTER_H