clang-tools 19.0.0git
Classes | Public Member Functions | List of all members
clang::clangd::ClangdLSPServer Class Reference

This class exposes ClangdServer's capabilities via Language Server Protocol. More...

#include <ClangdLSPServer.h>

Inheritance diagram for clang::clangd::ClangdLSPServer:
Inheritance graph
[legend]

Classes

class  MessageHandler
 
struct  Options
 

Public Member Functions

 ClangdLSPServer (Transport &Transp, const ThreadsafeFS &TFS, const ClangdLSPServer::Options &Opts)
 
 ~ClangdLSPServer ()
 The destructor blocks on any outstanding background tasks.
 
bool run ()
 Run LSP server loop, communicating with the Transport provided in the constructor.
 
void profile (MemoryTree &MT) const
 Profiles resource-usage.
 

Detailed Description

This class exposes ClangdServer's capabilities via Language Server Protocol.

MessageHandler binds the implemented LSP methods (e.g. onInitialize) to corresponding JSON-RPC methods ("initialize"). The server also supports $/cancelRequest (MessageHandler provides this).

Definition at line 39 of file ClangdLSPServer.h.

Constructor & Destructor Documentation

◆ ClangdLSPServer()

clang::clangd::ClangdLSPServer::ClangdLSPServer ( Transport Transp,
const ThreadsafeFS TFS,
const ClangdLSPServer::Options Opts 
)

◆ ~ClangdLSPServer()

clang::clangd::ClangdLSPServer::~ClangdLSPServer ( )

The destructor blocks on any outstanding background tasks.

Definition at line 1718 of file ClangdLSPServer.cpp.

Member Function Documentation

◆ profile()

void clang::clangd::ClangdLSPServer::profile ( MemoryTree MT) const

Profiles resource-usage.

Definition at line 1736 of file ClangdLSPServer.cpp.

References clang::clangd::MemoryTree::child().

◆ run()

bool clang::clangd::ClangdLSPServer::run ( )

Run LSP server loop, communicating with the Transport provided in the constructor.

This method must not be executed more than once.

Returns
Whether we shut down cleanly with a 'shutdown' -> 'exit' sequence.

Definition at line 1725 of file ClangdLSPServer.cpp.

References clang::clangd::elog(), and clang::clangd::Transport::loop().

Referenced by clang::clangd::clangdMain(), and LLVMFuzzerTestOneInput().


The documentation for this class was generated from the following files: