// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "cppeditor_global.h" #include #include #include #include #include #include #include namespace TextEditor { class AssistProposalItemInterface; class IAssistProposalWidget; } namespace CppEditor { class CPPEDITOR_EXPORT VirtualFunctionProposal : public TextEditor::GenericProposal { public: VirtualFunctionProposal(int cursorPos, const QList &items, bool openInSplit); private: TextEditor::IAssistProposalWidget *createWidget() const override; bool m_openInSplit; }; class CPPEDITOR_EXPORT VirtualFunctionAssistProvider : public TextEditor::IAssistProvider { Q_OBJECT public: VirtualFunctionAssistProvider(); struct Parameters { CPlusPlus::Function *function = nullptr; CPlusPlus::Class *staticClass = nullptr; QSharedPointer typeOfExpression; // Keeps instantiated symbols. CPlusPlus::Snapshot snapshot; int cursorPosition = -1; bool openInNextSplit = false; }; virtual bool configure(const Parameters ¶meters); Parameters params() const { return m_params; } void clearParams() { m_params = Parameters(); } TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override; private: Parameters m_params; }; } // namespace CppEditor