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

0001 /*
0002     SPDX-FileCopyrightText: 2010 Niko Sams <niko.sams@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef PHPCOMPLETIONCODEMODELITEM_H
0008 #define PHPCOMPLETIONCODEMODELITEM_H
0009 
0010 #include <language/codecompletion/codecompletionitem.h>
0011 #include <language/duchain/parsingenvironment.h>
0012 #include <serialization/indexedstring.h>
0013 
0014 #include "../duchain/completioncodemodel.h"
0015 
0016 #include "context.h"
0017 
0018 namespace Php
0019 {
0020 struct CompletionCodeModelItem;
0021 class CodeCompletionContext;
0022 
0023 class KDEVPHPCOMPLETION_EXPORT CodeModelCompletionItem : public KDevelop::CompletionTreeItem
0024 {
0025 public:
0026     explicit CodeModelCompletionItem(const KDevelop::ParsingEnvironmentFilePointer &, const CompletionCodeModelItem &item);
0027 
0028     QVariant data(const QModelIndex& index, int role, const KDevelop::CodeCompletionModel* model) const override;
0029     KTextEditor::CodeCompletionModel::CompletionProperties completionProperties() const override;
0030     void execute(KTextEditor::View* View, const KTextEditor::Range& word) override;
0031     KDevelop::DeclarationPointer declaration() const override;
0032 
0033 protected:
0034     CompletionCodeModelItem m_item;
0035     KDevelop::ParsingEnvironmentFilePointer m_env;
0036     mutable KDevelop::DeclarationPointer m_decl;
0037 };
0038 
0039 }
0040 
0041 #endif