ServerConnections.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include "../LanguageClient.h"
  8. #include <AK/LexicalPath.h>
  9. #include <DevTools/HackStudio/LanguageServers/LanguageClientEndpoint.h>
  10. #include <DevTools/HackStudio/LanguageServers/LanguageServerEndpoint.h>
  11. #include <LibIPC/ServerConnection.h>
  12. #define LANGUAGE_CLIENT(language_name_, socket_name) \
  13. namespace language_name_ { \
  14. class ServerConnection final : public HackStudio::ServerConnection { \
  15. IPC_CLIENT_CONNECTION(ServerConnection, "/tmp/portal/language" #socket_name) \
  16. public: \
  17. static const char* language_name() { return #language_name_; } \
  18. \
  19. private: \
  20. ServerConnection(NonnullOwnPtr<Core::Stream::LocalSocket> socket, const String& project_path) \
  21. : HackStudio::ServerConnection(move(socket), project_path) \
  22. { \
  23. } \
  24. }; \
  25. }
  26. namespace LanguageClients {
  27. LANGUAGE_CLIENT(Cpp, cpp)
  28. LANGUAGE_CLIENT(Shell, shell)
  29. }
  30. #undef LANGUAGE_CLIENT