File indexing completed on 2024-03-24 16:04:11

0001 /*
0002     SPDX-FileCopyrightText: 2007-2008 David Nolden <david.nolden.kdevelop@art-master.de>
0003     SPDX-FileCopyrightText: 2008 Hamish Rodda <rodda@kde.org>
0004     SPDX-FileCopyrightText: 2008 Niko Sams <niko.sams@gmail.com>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef PHPCOMPLETIONITEM_H
0010 #define PHPCOMPLETIONITEM_H
0011 
0012 #include <KTextEditor/CodeCompletionModel>
0013 
0014 #include <language/duchain/duchainpointer.h>
0015 #include <language/codecompletion/normaldeclarationcompletionitem.h>
0016 
0017 #include "context.h"
0018 
0019 namespace KTextEditor
0020 {
0021 class CodeCompletionModel;
0022 class Document;
0023 class Range;
0024 class Cursor;
0025 }
0026 
0027 class QModelIndex;
0028 
0029 namespace Php
0030 {
0031 class CodeCompletionContext;
0032 
0033 //A completion item used for completion of normal declarations while normal code-completion
0034 class KDEVPHPCOMPLETION_EXPORT NormalDeclarationCompletionItem : public KDevelop::NormalDeclarationCompletionItem
0035 {
0036 public:
0037     explicit NormalDeclarationCompletionItem(KDevelop::DeclarationPointer decl = KDevelop::DeclarationPointer(),
0038                                              QExplicitlySharedDataPointer<Php::CodeCompletionContext> context = {}, int _inheritanceDepth = 0)
0039             : KDevelop::NormalDeclarationCompletionItem(decl, context, _inheritanceDepth) {
0040     }
0041 
0042 
0043     QVariant data(const QModelIndex& index, int role, const KDevelop::CodeCompletionModel* model) const override;
0044 
0045 protected:
0046     QString declarationName() const override;
0047     void executed(KTextEditor::View* view, const KTextEditor::Range& word) override;
0048     QWidget* createExpandingWidget(const KDevelop::CodeCompletionModel* model) const override;
0049     bool createsExpandingWidget() const override;
0050 
0051     QExplicitlySharedDataPointer<Php::CodeCompletionContext> completionContext() const;
0052 };
0053 
0054 }
0055 
0056 #endif