File indexing completed on 2024-04-21 15:24:07

0001 /*
0002     SPDX-FileCopyrightText: 2006-2008 Hamish Rodda <rodda@kde.org>
0003     SPDX-FileCopyrightText: 2007-2008 David Nolden <david.nolden.kdevelop@art-master.de>
0004     SPDX-FileCopyrightText: 2008 Niko Sams <niko.sams@gmail.com>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef PHPCODECOMPLETIONMODEL_H
0010 #define PHPCODECOMPLETIONMODEL_H
0011 
0012 #include <QPair>
0013 #include <QMap>
0014 #include <QPointer>
0015 
0016 #include <KTextEditor/CodeCompletionModelControllerInterface>
0017 
0018 #include <language/codecompletion/codecompletionmodel.h>
0019 #include <language/duchain/duchainpointer.h>
0020 
0021 #include "context.h"
0022 
0023 namespace Php
0024 {
0025 
0026 class KDEVPHPCOMPLETION_EXPORT CodeCompletionModel : public KDevelop::CodeCompletionModel
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     CodeCompletionModel(QObject* parent = nullptr);
0032     ~CodeCompletionModel() override;
0033 
0034     bool shouldAbortCompletion(KTextEditor::View* view,
0035                                const KTextEditor::Range &range,
0036                                const QString &currentCompletion) override;
0037 
0038     KTextEditor::Range completionRange(KTextEditor::View* view,
0039                                        const KTextEditor::Cursor &position) override;
0040 
0041 protected:
0042     KDevelop::CodeCompletionWorker* createCompletionWorker() override;
0043 };
0044 
0045 }
0046 
0047 #endif
0048