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.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp
index e11c621aaa3..a7b36307b82 100644
--- a/clang-tools-extra/clangd/Protocol.cpp
+++ b/clang-tools-extra/clangd/Protocol.cpp
@@ -938,16 +938,19 @@ bool fromJSON(const llvm::json::Value &Params, ReferenceParams &R) {
return fromJSON(Params, Base);
}
-llvm::json::Value toJSON(const OffsetEncoding &OE) {
+static const char *toString(OffsetEncoding OE) {
switch (OE) {
- case OffsetEncoding::UTF8:
- return "utf-8";
- case OffsetEncoding::UTF16:
- return "utf-16";
- case OffsetEncoding::UnsupportedEncoding:
- return "unknown";
+ case OffsetEncoding::UTF8:
+ return "utf-8";
+ case OffsetEncoding::UTF16:
+ return "utf-16";
+ case OffsetEncoding::UTF32:
+ return "utf-32";
+ case OffsetEncoding::UnsupportedEncoding:
+ return "unknown";
}
}
+llvm::json::Value toJSON(const OffsetEncoding &OE) { return toString(OE); }
bool fromJSON(const llvm::json::Value &V, OffsetEncoding &OE) {
auto Str = V.getAsString();
if (!Str)
@@ -955,9 +958,13 @@ bool fromJSON(const llvm::json::Value &V, OffsetEncoding &OE) {
OE = llvm::StringSwitch<OffsetEncoding>(*Str)
.Case("utf-8", OffsetEncoding::UTF8)
.Case("utf-16", OffsetEncoding::UTF16)
+ .Case("utf-32", OffsetEncoding::UTF32)
.Default(OffsetEncoding::UnsupportedEncoding);
return true;
}
+llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, OffsetEncoding Enc) {
+ return OS << toString(Enc);
+}
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud