File indexing completed on 2024-05-19 15:41:37

0001 /*
0002     SPDX-FileCopyrightText: 2011-2016 Sven Brauch <svenbrauch@googlemail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef PYTHONDECLARATIONCOMPLETIONITEM_H
0008 #define PYTHONDECLARATIONCOMPLETIONITEM_H
0009 
0010 #include <language/codecompletion/normaldeclarationcompletionitem.h>
0011 #include <language/codecompletion/codecompletioncontext.h>
0012 #include <language/codecompletion/codecompletionmodel.h>
0013 #include "codecompletion/context.h"
0014 
0015 namespace Python {
0016 
0017 class PythonDeclarationCompletionItem : public KDevelop::NormalDeclarationCompletionItem {
0018 public:
0019     PythonDeclarationCompletionItem(KDevelop::DeclarationPointer decl = KDevelop::DeclarationPointer(), 
0020                                     QExplicitlySharedDataPointer<KDevelop::CodeCompletionContext> context = QExplicitlySharedDataPointer<KDevelop::CodeCompletionContext>(), 
0021                                     int inheritanceDepth = 0);
0022     QVariant data(const QModelIndex& index, int role, const KDevelop::CodeCompletionModel* model) const override;
0023     QString shortenedTypeString(const KDevelop::DeclarationPointer& decl, int desiredTypeLength) const override;
0024 
0025     void setTypeHint(PythonCodeCompletionContext::ItemTypeHint type);
0026     void addMatchQuality(int add);
0027 
0028     bool createsExpandingWidget() const override
0029     {
0030         return true;
0031     }
0032 
0033     QWidget* createExpandingWidget(const CodeCompletionModel* /*model*/) const override
0034     {
0035         return new Python::NavigationWidget(m_declaration, {}, KDevelop::AbstractNavigationWidget::EmbeddableWidget);
0036     }
0037 
0038 protected:
0039     PythonCodeCompletionContext::ItemTypeHint m_typeHint;
0040     int m_addMatchQuality;
0041 };
0042 
0043 } // namespace Python
0044 
0045 #endif