outgoing_messages.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. // Exceptions. See /LICENSE for license information.
  3. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. #ifndef CARBON_TOOLCHAIN_LANGUAGE_SERVER_OUTGOING_MESSAGES_H_
  5. #define CARBON_TOOLCHAIN_LANGUAGE_SERVER_OUTGOING_MESSAGES_H_
  6. #include "clang-tools-extra/clangd/LSPBinder.h"
  7. #include "clang-tools-extra/clangd/Transport.h"
  8. namespace Carbon::LanguageServer {
  9. // Handles sending LSP messages to the client (IDE extension).
  10. class OutgoingMessages : public clang::clangd::LSPBinder::RawOutgoing {
  11. public:
  12. explicit OutgoingMessages(clang::clangd::Transport* transport)
  13. : transport_(transport) {}
  14. // Calls a method on the client.
  15. // TODO: Implement when needed.
  16. auto callMethod(llvm::StringRef /*method*/, llvm::json::Value /*params*/,
  17. clang::clangd::Callback<llvm::json::Value> /*reply*/)
  18. -> void override {}
  19. // Sets a notification to the client.
  20. auto notify(llvm::StringRef method, llvm::json::Value params)
  21. -> void override {
  22. transport_->notify(method, params);
  23. }
  24. private:
  25. // The connection to the client.
  26. clang::clangd::Transport* transport_;
  27. };
  28. } // namespace Carbon::LanguageServer
  29. #endif // CARBON_TOOLCHAIN_LANGUAGE_SERVER_OUTGOING_MESSAGES_H_