[PATCH] D64199: [clangd] Added highlighting for variable references (declrefs)
Johan Vikström via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 4 07:44:47 PDT 2019
jvikstrom added inline comments.
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:38
+ bool VisitNamedDecl(NamedDecl *ND) {
+ if (ND->getDeclName().isEmpty())
+ // Don't add symbols that don't have any length.
----------------
sammccall wrote:
> I think you might want to bail out (both here and in VisitDeclRefExpr) if the name kind isn't identifier.
>
> Reason is you're only coloring the token at location, and most of the other name kinds can span multiple tokens or otherwise need special consideration.
I must have missed the Identifier NameKind because I was first-hand looking for something like that.
Thanks.
Are you aware of any testcase I could add for this by the way?
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:61
+ }
+ if(isa<FunctionDecl>(D)) {
+ addToken(Loc, HighlightingKind::Function);
----------------
sammccall wrote:
> note that methods, constructors, and destructors inherit from functiondecl, so if you want to exclude/distinguish those, order matters here
I'm aware of that, but thanks for the heads up. Although should I add it in a comment somewhere in the method? Also added an additional testcase for classes and FIXMEs to the skip if statement in VisitNamedDecl.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64199/new/
https://reviews.llvm.org/D64199
More information about the cfe-commits
mailing list