[PATCH] D127082: [clangd] Add Macro Expansion to Hover

Qingyuan Zheng via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 5 17:32:48 PDT 2022


daiyousei-qz added a comment.

It looks like my inline comment wasn't submitted (didn't click the submit button in the bottom). Here's my old comment.



================
Comment at: clang-tools-extra/clangd/Hover.cpp:1091
+
+  // Reformat Macro Expansion
+  if (!HI->MacroExpansion.empty()) {
----------------
nridge wrote:
> It would be interesting to have a couple of test cases that exercise the reformatting in non-trivial ways, e.g. long expansions that need to be wrapped onto multiple lines
> 
> I would suggest two such test cases, one with the expansion being in a declaration context, and the second an expression context (for this one, to make it long enough, the expansion could contain e.g. an `a ? b : c` expression)
> 
> (I'm suggesting the expression-context testcase in part as a sanity check to make sure that `format::reformat()` handles such code reasonably in the first place)
Somehow, this comment goes out of the position. 

In my opinion, such test should be written against `format::reformat()` directly instead of hover message in clangd. One problem is that we are using the current style in users' workspace to reformat the definition/expansion, which means the same tokens might present differently given different `.clang-format` or fallback style that the user has specified. I do agree that, if tokens don't conform a regular c++ expression, like `) . field`, the presentation could be bad. But I suppose there's no obvious solution for that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D127082



More information about the cfe-commits mailing list