1 /* 2 SPDX-FileCopyrightText: 2021 Ilia Kats <ilia-kats@gmx.net> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #ifndef KATELATEXCOMPLETIONMODEL_H 8 #define KATELATEXCOMPLETIONMODEL_H 9 10 #include <QModelIndex> 11 12 #include <KTextEditor/CodeCompletionModel> 13 #include <KTextEditor/CodeCompletionModelControllerInterface> 14 #include <KTextEditor/Cursor> 15 #include <KTextEditor/Range> 16 17 namespace KTextEditor 18 { 19 class View; 20 } 21 22 struct Completion; 23 class LatexCompletionModel : public KTextEditor::CodeCompletionModel, public KTextEditor::CodeCompletionModelControllerInterface 24 { 25 Q_OBJECT 26 Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) 27 public: 28 LatexCompletionModel(QObject *parent); 29 KTextEditor::Range completionRange(KTextEditor::View *view, const KTextEditor::Cursor &position) override; 30 bool shouldStartCompletion(KTextEditor::View *view, const QString &insertedText, bool userInsertion, const KTextEditor::Cursor &position) override; 31 bool shouldAbortCompletion(KTextEditor::View *view, const KTextEditor::Range &range, const QString ¤tCompletion) override; 32 void completionInvoked(KTextEditor::View *view, const KTextEditor::Range &range, InvocationType invocationType) override; 33 void executeCompletionItem(KTextEditor::View *view, const KTextEditor::Range &word, const QModelIndex &index) const override; matchingItem(const QModelIndex &)34 inline KTextEditor::CodeCompletionModelControllerInterface::MatchReaction matchingItem(const QModelIndex &) override 35 { 36 return None; 37 }; 38 QVariant data(const QModelIndex &index, int role) const override; 39 40 private: 41 QPair<int, int> m_matches = {0, 0}; 42 }; 43 #endif 44