diff options
| author | Sam McCall <sam.mccall@gmail.com> | 2019-04-18 15:17:07 +0000 |
|---|---|---|
| committer | Sam McCall <sam.mccall@gmail.com> | 2019-04-18 15:17:07 +0000 |
| commit | c9e4ee9ca995fbbb0b5e7b7b67bf0ffec4ba1046 (patch) | |
| tree | 5023772e64461bf7dd3cf9626b66b1f19a9d66f2 /clang-tools-extra/clangd/Protocol.cpp | |
| parent | 2751b69dd3945ef9bd1298c16dca5b59076f8f17 (diff) | |
| download | bcm5719-llvm-c9e4ee9ca995fbbb0b5e7b7b67bf0ffec4ba1046.tar.gz bcm5719-llvm-c9e4ee9ca995fbbb0b5e7b7b67bf0ffec4ba1046.zip | |
[clangd] Support relatedInformation in diagnostics.
Summary: We already have the structure internally, we just need to expose it.
Reviewers: ilya-biryukov
Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60267
llvm-svn: 358675
Diffstat (limited to 'clang-tools-extra/clangd/Protocol.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/Protocol.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Protocol.cpp b/clang-tools-extra/clangd/Protocol.cpp index 60c047b30b5..a8b1c43732d 100644 --- a/clang-tools-extra/clangd/Protocol.cpp +++ b/clang-tools-extra/clangd/Protocol.cpp @@ -277,6 +277,8 @@ bool fromJSON(const llvm::json::Value &Params, ClientCapabilities &R) { R.DiagnosticCategory = *CategorySupport; if (auto CodeActions = Diagnostics->getBoolean("codeActionsInline")) R.DiagnosticFixes = *CodeActions; + if (auto RelatedInfo = Diagnostics->getBoolean("relatedInformation")) + R.DiagnosticRelatedInformation = *RelatedInfo; } if (auto *Completion = TextDocument->getObject("completion")) { if (auto *Item = Completion->getObject("completionItem")) { @@ -419,6 +421,13 @@ bool fromJSON(const llvm::json::Value &Params, DocumentSymbolParams &R) { return O && O.map("textDocument", R.textDocument); } +llvm::json::Value toJSON(const DiagnosticRelatedInformation &DRI) { + return llvm::json::Object{ + {"location", DRI.location}, + {"message", DRI.message}, + }; +} + llvm::json::Value toJSON(const Diagnostic &D) { llvm::json::Object Diag{ {"range", D.range}, @@ -433,6 +442,8 @@ llvm::json::Value toJSON(const Diagnostic &D) { Diag["code"] = D.code; if (!D.source.empty()) Diag["source"] = D.source; + if (D.relatedInformation) + Diag["relatedInformation"] = *D.relatedInformation; return std::move(Diag); } |

