summaryrefslogtreecommitdiff
path: root/Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h')
-rw-r--r--Userland/DevTools/HackStudio/LanguageServers/Shell/ConnectionFromClient.h32
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;
+};
+}