diff options
author | Ilya Biryukov <ibiryukov@google.com> | 2018-02-15 14:32:57 +0000 |
---|---|---|
committer | Ilya Biryukov <ibiryukov@google.com> | 2018-02-15 14:32:57 +0000 |
commit | 23bc73b6263c77894785948c13e7a91416ec5783 (patch) | |
tree | 619cf7e7279c9e32d80d6c84e38de1d466250c39 /clang-tools-extra/clangd/Protocol.cpp | |
parent | 6353ecb08a60e96bb42f7c63b31c3139e2fd95ec (diff) | |
download | bcm5719-llvm-23bc73b6263c77894785948c13e7a91416ec5783.tar.gz bcm5719-llvm-23bc73b6263c77894785948c13e7a91416ec5783.zip |
[clangd] Enable snippet completion based on client capabilities.
Summary: And remove -enable-snippets flag.
Reviewers: hokein, ioeric, sammccall
Reviewed By: ioeric
Subscribers: klimek, jkorous-apple, cfe-commits
Differential Revision: https://reviews.llvm.org/D43229
llvm-svn: 325242
Diffstat (limited to 'clang-tools-extra/clangd/Protocol.cpp')
-rw-r--r-- | clang-tools-extra/clangd/Protocol.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp index a55b50f0c54..0c10540ff3b 100644 --- a/clang-tools-extra/clangd/Protocol.cpp +++ b/clang-tools-extra/clangd/Protocol.cpp @@ -150,6 +150,41 @@ bool fromJSON(const json::Expr &E, TraceLevel &Out) { return false; } +bool fromJSON(const json::Expr &Params, CompletionItemClientCapabilities &R) { + json::ObjectMapper O(Params); + if (!O) + return false; + O.map("snippetSupport", R.snippetSupport); + O.map("commitCharacterSupport", R.commitCharacterSupport); + return true; +} + +bool fromJSON(const json::Expr &Params, CompletionClientCapabilities &R) { + json::ObjectMapper O(Params); + if (!O) + return false; + O.map("dynamicRegistration", R.dynamicRegistration); + O.map("completionItem", R.completionItem); + O.map("contextSupport", R.contextSupport); + return true; +} + +bool fromJSON(const json::Expr &Params, TextDocumentClientCapabilities &R) { + json::ObjectMapper O(Params); + if (!O) + return false; + O.map("completion", R.completion); + return true; +} + +bool fromJSON(const json::Expr &Params, ClientCapabilities &R) { + json::ObjectMapper O(Params); + if (!O) + return false; + O.map("textDocument", R.textDocument); + return true; +} + bool fromJSON(const json::Expr &Params, InitializeParams &R) { json::ObjectMapper O(Params); if (!O) @@ -159,6 +194,7 @@ bool fromJSON(const json::Expr &Params, InitializeParams &R) { O.map("processId", R.processId); O.map("rootUri", R.rootUri); O.map("rootPath", R.rootPath); + O.map("capabilities", R.capabilities); O.map("trace", R.trace); // initializationOptions, capabilities unused return true; |