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.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp
index fb1481da5b5..9b0fbc5b2f3 100644
--- a/clang-tools-extra/clangd/Protocol.cpp
+++ b/clang-tools-extra/clangd/Protocol.cpp
@@ -1073,5 +1073,18 @@ llvm::json::Value toJSON(const SemanticHighlightingParams &Highlighting) {
};
}
+bool fromJSON(const llvm::json::Value &Params, SelectionRangeParams &P) {
+ llvm::json::ObjectMapper O(Params);
+ return O && O.map("textDocument", P.textDocument) &&
+ O.map("positions", P.positions);
+}
+
+llvm::json::Value toJSON(const SelectionRange &Out) {
+ if (Out.parent) {
+ return llvm::json::Object{{"range", Out.range},
+ {"parent", toJSON(*Out.parent)}};
+ }
+ return llvm::json::Object{{"range", Out.range}};
+}
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud