Details
-
Bug
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
Service Arch
-
ALL
Description
The attached images show the hover-documention generated by YouCompleteMe in Vim and VSCode. Both are displaying the same data, which was produced by clangd for the Promise<T>::setWith function. The effect is much more dramatic in VSCode's rendering (screenshots attached).
The TEMPLATE()/REQUIRES() macros have disassociated the documentation above the function's declaration. Clangd treats the function as if it were undocumented, showing only a dry report of the function's metadata.
These macros do not provide a benefit in easy enable-if cases like this and should be replaced with an ordinary std::enable_if_t so they don't obscure declarations unnecessarily. After replacing TEMPLATE()/REQUIRES() with a C++ std::enable_if_t, we see a full page of documentation (screenshots attached for that condition for comparison).