summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/CodeComplete.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-07-02 11:13:16 +0000
committerSam McCall <sam.mccall@gmail.com>2018-07-02 11:13:16 +0000
commite746a2b4f7dbe0c6b8dd280a92ddfb1644b232f9 (patch)
tree22e2edcfb2a00ed68dce407a698c25dbd7389b69 /clang-tools-extra/clangd/CodeComplete.cpp
parent2757df7933766a8ec344cb51eebfaa554812c685 (diff)
downloadbcm5719-llvm-e746a2b4f7dbe0c6b8dd280a92ddfb1644b232f9.tar.gz
bcm5719-llvm-e746a2b4f7dbe0c6b8dd280a92ddfb1644b232f9.zip
[clangd] ClangdServer::codeComplete return CodeCompleteResult, not LSP struct.
Summary: This provides more structured information that embedders can use for rendering. ClangdLSPServer continues to call render(), so NFC. The patch is: - trivial changes to ClangdServer/ClangdLSPServer - mostly-mechanical updates to CodeCompleteTests etc for the new API - new direct tests of render() in CodeCompleteTests - tiny cleanups to CodeCompletionItem (operator<< and missing initializers) Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48821 llvm-svn: 336094
Diffstat (limited to 'clang-tools-extra/clangd/CodeComplete.cpp')
-rw-r--r--clang-tools-extra/clangd/CodeComplete.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp
index 01cc4445003..03bef8eaa3a 100644
--- a/clang-tools-extra/clangd/CodeComplete.cpp
+++ b/clang-tools-extra/clangd/CodeComplete.cpp
@@ -1248,5 +1248,18 @@ CompletionItem CodeCompletion::render(const CodeCompleteOptions &Opts) const {
return LSP;
}
+raw_ostream &operator<<(raw_ostream &OS, const CodeCompletion &C) {
+ // For now just lean on CompletionItem.
+ return OS << C.render(CodeCompleteOptions());
+}
+
+raw_ostream &operator<<(raw_ostream &OS, const CodeCompleteResult &R) {
+ OS << "CodeCompleteResult: " << R.Completions.size() << (R.HasMore ? "+" : "")
+ << " items:\n";
+ for (const auto &C : R.Completions)
+ OS << C << "\n";
+ return OS;
+}
+
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud