File indexing completed on 2024-05-05 05:52:18
0001 /* This file is part of the Kate project. 0002 * Based on the snippet plugin from KDevelop 4. 0003 * 0004 * SPDX-FileCopyrightText: 2008 Andreas Pakulat <apaku@gmx.de> 0005 * SPDX-FileCopyrightText: 2012 Christoph Cullmann <cullmann@kde.org> 0006 * 0007 * SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <ktexteditor/codecompletionmodel.h> 0013 #include <ktexteditor/codecompletionmodelcontrollerinterface.h> 0014 0015 namespace KTextEditor 0016 { 0017 class View; 0018 } 0019 0020 class SnippetCompletionItem; 0021 0022 class SnippetCompletionModel : public KTextEditor::CodeCompletionModel, public KTextEditor::CodeCompletionModelControllerInterface 0023 { 0024 Q_OBJECT 0025 Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface) 0026 0027 public: 0028 SnippetCompletionModel(); 0029 ~SnippetCompletionModel() override; 0030 0031 QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const override; 0032 void completionInvoked(KTextEditor::View *view, const KTextEditor::Range &range, KTextEditor::CodeCompletionModel::InvocationType invocationType) override; 0033 void executeCompletionItem(KTextEditor::View *view, const KTextEditor::Range &word, const QModelIndex &index) const override; 0034 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0035 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; 0036 QModelIndex parent(const QModelIndex &index) const override; 0037 bool shouldStartCompletion(KTextEditor::View *view, const QString &insertedText, bool userInsertion, const KTextEditor::Cursor &position) override; 0038 bool shouldAbortCompletion(KTextEditor::View *view, const KTextEditor::Range &range, const QString ¤tCompletion) override; 0039 0040 private: 0041 void initData(KTextEditor::View *view); 0042 QList<SnippetCompletionItem *> m_snippets; 0043 };