[PATCH] D137909: [Support] Allow complex names for annotation points and ranges via ${}

Tom Praschan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 16 14:32:51 PST 2022


tom-anders added a comment.

In D137909#3930043 <https://reviews.llvm.org/D137909#3930043>, @sammccall wrote:

> What do you think about `$name(payload)^` for the general case, with `$(payload)^`, `$name`, and `^` as abbreviated forms? I don't think the lack of brackets on **names** hurts a lot if they stay simple, and if they're "just labels" that don't have to carry arbitrary payloads then they can be simple.

Thanks for the detailed feedback, I think this looks perfect! I adapted the code and docs accordingly (I added some comments to the parts I'm not sure about)

In D137909#3930047 <https://reviews.llvm.org/D137909#3930047>, @sammccall wrote:

>> D137894 <https://reviews.llvm.org/D137894>
>
> this looks cool! I left a couple of comments, mentioning here because phab won't notify for comments on drafts.

Thanks! I replied to one of them :)



================
Comment at: clang-tools-extra/clangd/unittests/Annotations.h:30
 
+  struct Position : clangd::Position {
+    llvm::Optional<llvm::StringRef> Payload;
----------------
I thought about just using `std::pair<clangd::Position, llvm::Optional<llvm::StringRef>> instead, but that is pretty verbose and unreadable here IMO. Another nice thing about subclassing here is that we can keep the API stable and don't have to introduce  an additional `pointWithPayload()` getter like in the base class.


================
Comment at: llvm/include/llvm/Testing/Support/Annotations.h:61
     size_t End = 0;
+    llvm::Optional<llvm::StringRef> Payload;
 
----------------
One could argue that this should just be `llvm::StringRef`. Right now, `$name^` results in `llvm::None` for the payload, while `$name()^` will yield an empty string.

Do you think they should just both be empty strings instead?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D137909



More information about the cfe-commits mailing list