diff options
Diffstat (limited to 'Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h')
-rw-r--r-- | Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h b/Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h new file mode 100644 index 0000000000..20eff7faf0 --- /dev/null +++ b/Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include "ShellComprehensionEngine.h" +#include <DevTools/HackStudio/LanguageServers/ConnectionFromClient.h> +#include <LibCpp/Parser.h> + +namespace LanguageServers::Shell { + +class ConnectionFromClient final : public LanguageServers::ConnectionFromClient { + C_OBJECT(ConnectionFromClient); + +private: + ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSocket> socket) + : LanguageServers::ConnectionFromClient(move(socket)) + { + m_autocomplete_engine = make<ShellComprehensionEngine>(m_filedb); + m_autocomplete_engine->set_declarations_of_document_callback = [this](const String& filename, Vector<GUI::AutocompleteProvider::Declaration>&& declarations) { + async_declarations_in_document(filename, move(declarations)); + }; + m_autocomplete_engine->set_todo_entries_of_document_callback = [this](String const& filename, Vector<Cpp::Parser::TodoEntry>&& todo_entries) { + async_todo_entries_in_document(filename, move(todo_entries)); + }; + } + virtual ~ConnectionFromClient() override = default; +}; +} |