From 3839d6896c4416f4997136d5758c5a4e83ddb3bf Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Mon, 10 Mar 2025 17:56:27 +0200 Subject: [PATCH] refactor: Pass LLMClientInterface to QodeAssistClient (#122) Contructing LLMClientInterface in constructor of QodeAssistClient when initializing base class severely limits what can be done. In particular, no members can be referred to, because nothing of the class instance itself has been initialized at that point of time. --- QodeAssistClient.cpp | 9 ++------- QodeAssistClient.hpp | 4 ++-- qodeassist.cpp | 7 +++++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/QodeAssistClient.cpp b/QodeAssistClient.cpp index c87bb35..4f746f8 100644 --- a/QodeAssistClient.cpp +++ b/QodeAssistClient.cpp @@ -44,13 +44,8 @@ using namespace Core; namespace QodeAssist { -QodeAssistClient::QodeAssistClient( - LLMCore::IProviderRegistry &providerRegistry, LLMCore::IPromptProvider *promptProvider) - : LanguageClient::Client(new LLMClientInterface( - Settings::generalSettings(), - Settings::codeCompletionSettings(), - providerRegistry, - promptProvider)) +QodeAssistClient::QodeAssistClient(LLMClientInterface *clientInterface) + : LanguageClient::Client(clientInterface) , m_recentCharCount(0) { setName("Qode Assist"); diff --git a/QodeAssistClient.hpp b/QodeAssistClient.hpp index 615a6c6..4b4f790 100644 --- a/QodeAssistClient.hpp +++ b/QodeAssistClient.hpp @@ -24,6 +24,7 @@ #pragma once +#include "LLMClientInterface.hpp" #include "LSPCompletion.hpp" #include #include @@ -34,8 +35,7 @@ namespace QodeAssist { class QodeAssistClient : public LanguageClient::Client { public: - explicit QodeAssistClient( - LLMCore::IProviderRegistry &providerRegistry, LLMCore::IPromptProvider *promptProvider); + explicit QodeAssistClient(LLMClientInterface *clientInterface); ~QodeAssistClient() override; void openDocument(TextEditor::TextDocument *document) override; diff --git a/qodeassist.cpp b/qodeassist.cpp index d5dbf89..8cfb31a 100644 --- a/qodeassist.cpp +++ b/qodeassist.cpp @@ -138,8 +138,11 @@ public: void restartClient() { LanguageClient::LanguageClientManager::shutdownClient(m_qodeAssistClient); - m_qodeAssistClient - = new QodeAssistClient(LLMCore::ProvidersManager::instance(), &m_promptProvider); + m_qodeAssistClient = new QodeAssistClient(new LLMClientInterface( + Settings::generalSettings(), + Settings::codeCompletionSettings(), + LLMCore::ProvidersManager::instance(), + &m_promptProvider)); } bool delayedInitialize() final