File indexing completed on 2025-07-06 04:16:52
0001 /* 0002 SPDX-FileCopyrightText: 2014 Denis Steckelmacher <steckdenis@yahoo.fr> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef __COMPLETIONITEM_H__ 0008 #define __COMPLETIONITEM_H__ 0009 0010 #include <language/codecompletion/normaldeclarationcompletionitem.h> 0011 0012 namespace QmlJS { 0013 0014 class CompletionItem : public KDevelop::NormalDeclarationCompletionItem 0015 { 0016 public: 0017 /** 0018 * @brief Decoration to put around an item when it is inserted into the code editor 0019 */ 0020 enum Decoration 0021 { 0022 NoDecoration, /*!< @brief No decoration at all */ 0023 Quotes, /*!< @brief Wrap the item in quotes: item becomes "item" */ 0024 QuotesAndBracket, /*!< @brief Wrap the item as in array subscripts: item becomes "item"] */ 0025 ColonOrBracket, /*!< @brief Append a colon or a bracket after the item: item becomes "item:" or "item {|}" if item has a structure type */ 0026 Brackets, /*!< @brief Append brackets after the item and put the cursor in-between them: item becomes item(|) */ 0027 }; 0028 0029 CompletionItem(const KDevelop::DeclarationPointer& decl, int inheritanceDepth, Decoration decoration); 0030 0031 QVariant data(const QModelIndex& index, int role, const KDevelop::CodeCompletionModel* model) const override; 0032 QString declarationName() const override; 0033 KTextEditor::CodeCompletionModel::CompletionProperties completionProperties() const override; 0034 0035 protected: 0036 void execute(KTextEditor::View* view, const KTextEditor::Range& word) override; 0037 0038 private: 0039 Decoration m_decoration; 0040 }; 0041 0042 } 0043 0044 #endif