summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/Protocol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/Protocol.cpp')
-rw-r--r--clang-tools-extra/clangd/Protocol.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp
index d4892682db9..1bb5961a5b4 100644
--- a/clang-tools-extra/clangd/Protocol.cpp
+++ b/clang-tools-extra/clangd/Protocol.cpp
@@ -663,20 +663,22 @@ bool fromJSON(const json::Value &Params, ClangdCompileCommand &CDbUpdate) {
O.map("compilationCommand", CDbUpdate.compilationCommand);
}
-bool fromJSON(const json::Value &Params,
- ClangdConfigurationParamsChange &CCPC) {
+bool fromJSON(const json::Value &Params, ConfigurationSettings &S) {
json::ObjectMapper O(Params);
- return O &&
- O.map("compilationDatabaseChanges", CCPC.compilationDatabaseChanges);
+ if (!O)
+ return true; // 'any' type in LSP.
+ O.map("compilationDatabaseChanges", S.compilationDatabaseChanges);
+ return true;
}
-bool fromJSON(const json::Value &Params, ClangdInitializationOptions &Opts) {
- if (!fromJSON(Params, Opts.ParamsChange)) {
- return false;
- }
-
+bool fromJSON(const json::Value &Params, InitializationOptions &Opts) {
json::ObjectMapper O(Params);
- return O && O.map("compilationDatabasePath", Opts.compilationDatabasePath);
+ if (!O)
+ return true; // 'any' type in LSP.
+
+ fromJSON(Params, Opts.ConfigSettings);
+ O.map("compilationDatabasePath", Opts.compilationDatabasePath);
+ return true;
}
bool fromJSON(const json::Value &Params, ReferenceParams &R) {
OpenPOWER on IntegriCloud