File indexing completed on 2024-05-05 16:46:08
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