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

