diff --git a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp index 3d67f6d128..4c930f99ce 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp @@ -8,9 +8,8 @@ namespace LanguageServers { -AutoCompleteEngine::AutoCompleteEngine(ClientConnection& connection, const FileDB& filedb, bool should_store_all_declarations) - : m_connection(connection) - , m_filedb(filedb) +AutoCompleteEngine::AutoCompleteEngine(const FileDB& filedb, bool should_store_all_declarations) + : m_filedb(filedb) , m_store_all_declarations(should_store_all_declarations) { } @@ -29,6 +28,6 @@ void AutoCompleteEngine::set_declarations_of_document(const String& filename, Ve } if (m_store_all_declarations) m_all_declarations.set(filename, declarations); - set_declarations_of_document_callback(m_connection, filename, move(declarations)); + set_declarations_of_document_callback(filename, move(declarations)); } } diff --git a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.h b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.h index 452b6ccbad..d4274abd09 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.h +++ b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.h @@ -17,7 +17,7 @@ class ClientConnection; class AutoCompleteEngine { public: - AutoCompleteEngine(ClientConnection&, const FileDB& filedb, bool store_all_declarations = false); + AutoCompleteEngine(const FileDB& filedb, bool store_all_declarations = false); virtual ~AutoCompleteEngine(); virtual Vector get_suggestions(const String& file, const GUI::TextPosition& autocomplete_position) = 0; @@ -29,7 +29,7 @@ public: virtual Optional find_declaration_of(const String&, const GUI::TextPosition&) { return {}; }; public: - Function)> set_declarations_of_document_callback; + Function&&)> set_declarations_of_document_callback; protected: const FileDB& filedb() const { return m_filedb; } @@ -37,7 +37,6 @@ protected: const HashMap>& all_declarations() const { return m_all_declarations; } private: - ClientConnection& m_connection; HashMap> m_all_declarations; const FileDB& m_filedb; bool m_store_all_declarations { false }; diff --git a/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.cpp b/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.cpp index ae64494e38..5c4d579f70 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.cpp @@ -118,9 +118,4 @@ void ClientConnection::find_declaration(GUI::AutocompleteProvider::ProjectLocati async_declaration_location(GUI::AutocompleteProvider::ProjectLocation { decl_location.value().file, decl_location.value().line, decl_location.value().column }); } -void ClientConnection::set_declarations_of_document_callback(ClientConnection& instance, const String& filename, Vector&& declarations) -{ - instance.async_declarations_in_document(filename, move(declarations)); -} - } diff --git a/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.h b/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.h index 0ae2ff1d37..acf63dbd3a 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.h +++ b/Userland/DevTools/HackStudio/LanguageServers/ClientConnection.h @@ -36,8 +36,6 @@ protected: virtual void find_declaration(GUI::AutocompleteProvider::ProjectLocation const&) override; virtual void set_auto_complete_mode(String const&) override = 0; - static void set_declarations_of_document_callback(ClientConnection&, const String&, Vector&&); - FileDB m_filedb; OwnPtr m_autocomplete_engine; }; diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ClientConnection.h b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ClientConnection.h index 44d98b93e8..248e764684 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ClientConnection.h +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ClientConnection.h @@ -19,8 +19,10 @@ public: ClientConnection(NonnullRefPtr socket, int client_id) : LanguageServers::ClientConnection(move(socket), client_id) { - m_autocomplete_engine = make(*this, m_filedb); - m_autocomplete_engine->set_declarations_of_document_callback = &ClientConnection::set_declarations_of_document_callback; + m_autocomplete_engine = make(m_filedb); + m_autocomplete_engine->set_declarations_of_document_callback = [this](const String& filename, Vector&& declarations) { + async_declarations_in_document(filename, move(declarations)); + }; } virtual ~ClientConnection() override = default; @@ -30,9 +32,9 @@ private: { dbgln_if(CPP_LANGUAGE_SERVER_DEBUG, "SetAutoCompleteMode: {}", mode); if (mode == "Parser") - m_autocomplete_engine = make(*this, m_filedb); + m_autocomplete_engine = make(m_filedb); else - m_autocomplete_engine = make(*this, m_filedb); + m_autocomplete_engine = make(m_filedb); } }; } diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.cpp b/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.cpp index 3980f91002..fa59fbcd8f 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.cpp @@ -11,8 +11,8 @@ namespace LanguageServers::Cpp { -LexerAutoComplete::LexerAutoComplete(ClientConnection& connection, const FileDB& filedb) - : AutoCompleteEngine(connection, filedb) +LexerAutoComplete::LexerAutoComplete(const FileDB& filedb) + : AutoCompleteEngine(filedb) { } diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.h b/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.h index e8f12dad32..697a7e8094 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.h +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/LexerAutoComplete.h @@ -19,7 +19,7 @@ using namespace ::Cpp; class LexerAutoComplete : public AutoCompleteEngine { public: - LexerAutoComplete(ClientConnection&, const FileDB& filedb); + LexerAutoComplete(const FileDB& filedb); virtual Vector get_suggestions(const String& file, const GUI::TextPosition& autocomplete_position) override; diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp index e3c195a4db..cee25de4af 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp @@ -17,8 +17,8 @@ namespace LanguageServers::Cpp { -ParserAutoComplete::ParserAutoComplete(ClientConnection& connection, const FileDB& filedb) - : AutoCompleteEngine(connection, filedb, true) +ParserAutoComplete::ParserAutoComplete(const FileDB& filedb) + : AutoCompleteEngine(filedb, true) { } diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.h b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.h index 39db9c8656..6ea99fc66a 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.h +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.h @@ -23,7 +23,7 @@ using namespace ::Cpp; class ParserAutoComplete : public AutoCompleteEngine { public: - ParserAutoComplete(ClientConnection&, const FileDB& filedb); + ParserAutoComplete(const FileDB& filedb); virtual Vector get_suggestions(const String& file, const GUI::TextPosition& autocomplete_position) override; virtual void on_edit(const String& file) override; diff --git a/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.cpp b/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.cpp index 81182db506..3b2e542799 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.cpp @@ -14,8 +14,8 @@ namespace LanguageServers::Shell { RefPtr<::Shell::Shell> AutoComplete::s_shell {}; -AutoComplete::AutoComplete(ClientConnection& connection, const FileDB& filedb) - : AutoCompleteEngine(connection, filedb, true) +AutoComplete::AutoComplete(const FileDB& filedb) + : AutoCompleteEngine(filedb, true) { } diff --git a/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.h b/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.h index 2bfdf0aced..ad2b82e0ef 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.h +++ b/Userland/DevTools/HackStudio/LanguageServers/Shell/AutoComplete.h @@ -13,7 +13,7 @@ namespace LanguageServers::Shell { class AutoComplete : public AutoCompleteEngine { public: - AutoComplete(ClientConnection&, const FileDB& filedb); + AutoComplete(const FileDB& filedb); virtual Vector get_suggestions(const String& file, const GUI::TextPosition& position) override; virtual void on_edit(const String& file) override; virtual void file_opened([[maybe_unused]] const String& file) override; diff --git a/Userland/DevTools/HackStudio/LanguageServers/Shell/ClientConnection.h b/Userland/DevTools/HackStudio/LanguageServers/Shell/ClientConnection.h index 44899c658a..e359ba8497 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Shell/ClientConnection.h +++ b/Userland/DevTools/HackStudio/LanguageServers/Shell/ClientConnection.h @@ -17,8 +17,10 @@ class ClientConnection final : public LanguageServers::ClientConnection { ClientConnection(NonnullRefPtr socket, int client_id) : LanguageServers::ClientConnection(move(socket), client_id) { - m_autocomplete_engine = make(*this, m_filedb); - m_autocomplete_engine->set_declarations_of_document_callback = &ClientConnection::set_declarations_of_document_callback; + m_autocomplete_engine = make(m_filedb); + m_autocomplete_engine->set_declarations_of_document_callback = [this](const String& filename, Vector&& declarations) { + async_declarations_in_document(filename, move(declarations)); + }; } virtual ~ClientConnection() override = default;