diff options
Diffstat (limited to 'clang-tools-extra/clangd/Protocol.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/Protocol.cpp | 22 |
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) { |

