kadircet marked 10 inline comments as done.
kadircet added inline comments.


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:567
+    const HoverInfo Expected;
+  } // namespace
+  Cases[] = {
----------------
sammccall wrote:
> namespace?!
> 
> might be a clang-format bug?
I must have messed the brackets at some point :D


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:574
+        )cpp",
+       {/*NamespaceScope=*/std::string(""),
+        /*LocalScope=*/std::string(""),
----------------
sammccall wrote:
> using the constructor/aggregate init here has a couple of downsides:
>  - vebosity: you need to list every field, even those that are not set for 
> this case (TemplateParameters), or are misleading (SymRange is none)
>  - brittleness: it makes it hard to change the struct at all
>  - readability: the /*foo=*/ comments aren't bad, but not ideal either
> 
> Using field-by-field initialization would be better I think, though it's a 
> bit awkward here.
> 
> but e.g. you could make the member std::function<HoverInfo> ExpectedBuilder, 
> and write
> 
> ```
> 
> [&](HoverInfo &Expected) {
>   Expected.Name = "foo";
>   Expected.Kind = SymbolKind::Function;
>   ...
> }
> ```
yeah that looks a lot better, thanks!


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:592
+        )cpp",
+       {/*NamespaceScope=*/std::string("ns1::ns2"),
+        /*LocalScope=*/std::string(""),
----------------
sammccall wrote:
> I think this should be "ns1::ns2::", as we use scope internally.
> This means we can simply concatenate parts to form a qname.
> 
> For the current rendering, it's easy to strip ::
should it also be "::" for global namespace ? which would also result in 
prefixing any symbol in global namespace with "::" when printing.


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:599
+        /*Definition=*/"void foo()",
+        /*Type=*/llvm::None,
+        /*ReturnType=*/std::string("void"),
----------------
sammccall wrote:
> It would be nice to add `void()` or `void (&)()` or so if it's easy.
> This is what `:YcmCompleter GetType` would show
just put the type without any parameter names, but I am not sure whether users 
would want that. I believe people find current hover behavior a lot more useful 
then just showing type(which is done by libclang)


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:782
+        /*Definition=*/
+        "auto lamb = [&bar](int T, bool B) -> bool {\n    return T && B && "
+        "bar;\n}",
----------------
sammccall wrote:
> is it easy to omit the body?
yes, sent out D62487


================
Comment at: clang-tools-extra/clangd/unittests/XRefsTests.cpp:951
           )cpp",
-          "Declared in namespace ns1\n\nstruct MyClass {}",
+          "Declared in ns1\n\nstruct MyClass {}",
       },
----------------
sammccall wrote:
> note that if you want to it's easy to keep "Declared in namespace" - the 
> LocalScope is empty.
> (Though we can't provide this info for non-namespace containers)
I believe it doesn't make sense to add only one, so leaving it until we hear 
from users that they need the kind information


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61497/new/

https://reviews.llvm.org/D61497



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to