initialize: implement serverInfo (LSP 3.15.0)

Return serverInfo for an initialize request. This helps clients to
identify ccls even when they just connect to a TCP port and allows them
to easily implement server specific functionalities like $ccls/navigate.
This commit is contained in:
Felicián Németh 2019-11-11 10:19:24 +01:00 committed by Fangrui Song
parent 0a1e08a8ca
commit 760f5e57ff
2 changed files with 8 additions and 1 deletions

View File

@ -240,3 +240,5 @@ endif()
set_property(SOURCE src/main.cc APPEND PROPERTY set_property(SOURCE src/main.cc APPEND PROPERTY
COMPILE_DEFINITIONS CCLS_VERSION=\"${CCLS_VERSION}\") COMPILE_DEFINITIONS CCLS_VERSION=\"${CCLS_VERSION}\")
set_property(SOURCE src/messages/initialize.cc APPEND PROPERTY
COMPILE_DEFINITIONS CCLS_VERSION=\"${CCLS_VERSION}\")

View File

@ -221,8 +221,13 @@ REFLECT_STRUCT(InitializeParam, rootUri, capabilities, trace, workspaceFolders);
struct InitializeResult { struct InitializeResult {
ServerCap capabilities; ServerCap capabilities;
struct ServerInfo {
const char *name = "ccls";
const char *version = CCLS_VERSION;
} serverInfo;
}; };
REFLECT_STRUCT(InitializeResult, capabilities); REFLECT_STRUCT(InitializeResult::ServerInfo, name, version);
REFLECT_STRUCT(InitializeResult, capabilities, serverInfo);
struct FileSystemWatcher { struct FileSystemWatcher {
std::string globPattern = "**/*"; std::string globPattern = "**/*";