File indexing completed on 2024-04-28 05:48:56

0001 /*
0002     SPDX-FileCopyrightText: 2019 Mark Nauwelaerts <mark.nauwelaerts@gmail.com>
0003 
0004     SPDX-License-Identifier: MIT
0005 */
0006 
0007 #pragma once
0008 
0009 #include "lspclientserver.h"
0010 #include "lspclientservermanager.h"
0011 
0012 #include <KTextEditor/CodeCompletionModel>
0013 #include <KTextEditor/CodeCompletionModelControllerInterface>
0014 
0015 class LSPClientCompletion : public KTextEditor::CodeCompletionModel, public KTextEditor::CodeCompletionModelControllerInterface
0016 {
0017     Q_OBJECT
0018 
0019     Q_INTERFACES(KTextEditor::CodeCompletionModelControllerInterface)
0020 
0021 public:
0022     // implementation factory method
0023     static LSPClientCompletion *new_(std::shared_ptr<LSPClientServerManager> manager);
0024 
0025     LSPClientCompletion(QObject *parent)
0026         : KTextEditor::CodeCompletionModel(parent)
0027     {
0028     }
0029 
0030     virtual void setServer(std::shared_ptr<LSPClientServer> server) = 0;
0031     virtual void setSelectedDocumentation(bool) = 0;
0032     virtual void setSignatureHelp(bool) = 0;
0033     virtual void setCompleteParens(bool) = 0;
0034     virtual void setAutoImport(bool) = 0;
0035 };