[PATCH] D114621: [clangd] Show parameters for construct.
liu hui via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 26 23:31:19 PST 2021
lh123 updated this revision to Diff 390143.
lh123 added a comment.
address comment.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114621/new/
https://reviews.llvm.org/D114621
Files:
clang-tools-extra/clangd/Hover.cpp
clang-tools-extra/clangd/unittests/HoverTests.cpp
Index: clang-tools-extra/clangd/unittests/HoverTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/HoverTests.cpp
+++ clang-tools-extra/clangd/unittests/HoverTests.cpp
@@ -2680,6 +2680,32 @@
// In cls<int>
protected: int method())",
+ },
+ {
+ [](HoverInfo &HI) {
+ HI.Definition = "cls(int a, int b = 5)";
+ HI.AccessSpecifier = "public";
+ HI.Kind = index::SymbolKind::Constructor;
+ HI.NamespaceScope = "";
+ HI.LocalScope = "cls";
+ HI.Name = "cls";
+ HI.Parameters.emplace();
+ HI.Parameters->emplace_back();
+ HI.Parameters->back().Type = "int";
+ HI.Parameters->back().Name = "a";
+ HI.Parameters->emplace_back();
+ HI.Parameters->back().Type = "int";
+ HI.Parameters->back().Name = "b";
+ HI.Parameters->back().Default = "5";
+ },
+ R"(constructor cls
+
+Parameters:
+- int a
+- int b = 5
+
+// In cls
+public: cls(int a, int b = 5))",
},
{
[](HoverInfo &HI) {
Index: clang-tools-extra/clangd/Hover.cpp
===================================================================
--- clang-tools-extra/clangd/Hover.cpp
+++ clang-tools-extra/clangd/Hover.cpp
@@ -1051,27 +1051,29 @@
Output.addRuler();
// Print Types on their own lines to reduce chances of getting line-wrapped by
// editor, as they might be long.
- if (ReturnType) {
+ if (ReturnType)
// For functions we display signature in a list form, e.g.:
// → `x`
// Parameters:
// - `bool param1`
// - `int param2 = 5`
Output.addParagraph().appendText("→ ").appendCode(*ReturnType);
- if (Parameters && !Parameters->empty()) {
- Output.addParagraph().appendText("Parameters: ");
- markup::BulletList &L = Output.addBulletList();
- for (const auto &Param : *Parameters) {
- std::string Buffer;
- llvm::raw_string_ostream OS(Buffer);
- OS << Param;
- L.addItem().addParagraph().appendCode(std::move(OS.str()));
- }
+
+ if (Parameters && !Parameters->empty()) {
+ Output.addParagraph().appendText("Parameters: ");
+ markup::BulletList &L = Output.addBulletList();
+ for (const auto &Param : *Parameters) {
+ std::string Buffer;
+ llvm::raw_string_ostream OS(Buffer);
+ OS << Param;
+ L.addItem().addParagraph().appendCode(std::move(OS.str()));
}
- } else if (Type) {
- Output.addParagraph().appendText("Type: ").appendCode(*Type);
}
+ if (Type && !ReturnType && !Parameters)
+ // Don't print Type after Parameters or ReturnType
+ Output.addParagraph().appendText("Type: ").appendCode(*Type);
+
if (Value) {
markup::Paragraph &P = Output.addParagraph();
P.appendText("Value = ");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114621.390143.patch
Type: text/x-patch
Size: 2878 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211127/e833af72/attachment.bin>
More information about the cfe-commits
mailing list