diff options
author | Itamar <itamar8910@gmail.com> | 2021-04-10 17:35:55 +0300 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-04-13 15:16:27 +0200 |
commit | 5adfcd54d814af3aae48a6dfef2ebb6576070aac (patch) | |
tree | 95a4d6c25ff193f62668467bee6d6b21c26a3377 | |
parent | 667926df73881abfdaf4ef827ab90cb788de75ab (diff) | |
download | serenity-5adfcd54d814af3aae48a6dfef2ebb6576070aac.zip |
LanguageServers: Only notify client about updated declarations
If the declarations haven't changed since we last notified the client,
then there's no need to do so.
-rw-r--r-- | Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp | 6 | ||||
-rw-r--r-- | Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp index 718f69a96d..5e8d570805 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/AutoCompleteEngine.cpp @@ -41,6 +41,12 @@ AutoCompleteEngine::~AutoCompleteEngine() void AutoCompleteEngine::set_declarations_of_document(const String& filename, Vector<GUI::AutocompleteProvider::Declaration>&& declarations) { VERIFY(set_declarations_of_document_callback); + + // Optimization - Only notify callback if declerations have changed + if (auto previous_declarations = m_all_declarations.get(filename); previous_declarations.has_value()) { + if (previous_declarations.value() == declarations) + return; + } if (m_store_all_declarations) m_all_declarations.set(filename, declarations); set_declarations_of_document_callback(m_connection, filename, move(declarations)); diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp index dd402047f5..9f269c6659 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp @@ -37,7 +37,7 @@ namespace LanguageServers::Cpp { ParserAutoComplete::ParserAutoComplete(ClientConnection& connection, const FileDB& filedb) - : AutoCompleteEngine(connection, filedb) + : AutoCompleteEngine(connection, filedb, true) { } |