[clangd] Improve inlay hints of things expanded from macros
authorSam McCall <sam.mccall@gmail.com>
Thu, 15 Sep 2022 22:41:32 +0000 (00:41 +0200)
committerSam McCall <sam.mccall@gmail.com>
Mon, 19 Sep 2022 14:44:21 +0000 (16:44 +0200)
commit924974a3a13b03090d04860f209ce11b3d9d00a6
tree8a8e74cd1e739154c1f695e7c0b06a3fa51f51f6
parent9b2a3d20f22a7bbd3d37e6d1b7ec1fa60549b721
[clangd] Improve inlay hints of things expanded from macros

When we aim a hint at some expanded tokens, we're only willing to attach it
to spelled tokens that exactly corresponde.

e.g.
int zoom(int x, int y, int z);
int dummy = zoom(NUMBERS);

Here we want to place a hint "x:" on the expanded "1", but we shouldn't
be willing to place it on NUMBERS, because it doesn't *exactly*
correspond (it has more tokens).

Fortunately we don't even have to implement this algorithm from scratch,
TokenBuffer has it.

Fixes https://github.com/clangd/clangd/issues/1289
Fixes https://github.com/clangd/clangd/issues/1118
Fixes https://github.com/clangd/clangd/issues/1018

Differential Revision: https://reviews.llvm.org/D133982
clang-tools-extra/clangd/InlayHints.cpp
clang-tools-extra/clangd/unittests/InlayHintTests.cpp