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