diff options
| author | Sam McCall <sam.mccall@gmail.com> | 2019-03-28 14:37:51 +0000 |
|---|---|---|
| committer | Sam McCall <sam.mccall@gmail.com> | 2019-03-28 14:37:51 +0000 |
| commit | 8b25d228804f4494eb22bfad0e5ccbaf95d49a91 (patch) | |
| tree | 8e38792297e92a8d07d1fb66b640415f6b278f96 /clang-tools-extra/clangd/Protocol.cpp | |
| parent | 5bbf6f0bd8966c32a62527d32501d984df1b800e (diff) | |
| download | bcm5719-llvm-8b25d228804f4494eb22bfad0e5ccbaf95d49a91.tar.gz bcm5719-llvm-8b25d228804f4494eb22bfad0e5ccbaf95d49a91.zip | |
[clangd] Support UTF-32 (i.e. codepoint) offsets.
Summary:
(Changes to UTF-8/UTF-16 here are NFC, moving things around to make the
cases more symmetrical)
Reviewers: ilya-biryukov
Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59927
llvm-svn: 357173
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 |

