[PATCH] D64617: [clangd] Added highlighting for members and methods
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 12 02:51:51 PDT 2019
hokein added inline comments.
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:44
+ bool VisitMemberExpr(MemberExpr *ME) {
+ if (const CXXMethodDecl *MD =
+ dyn_cast<CXXMethodDecl>(ME->getMemberDecl())) {
----------------
nit: this can be simplified like
```
if (const auto* D = dyn_cast<CXXDestructorDecl>(ME->getMemberDecl())) {
// When calling the destructor manually like: AAA::~A(); The ~ is a
// MemberExpr.
return true;
}
```
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:53
+
+ // The MemberDecl is VarDecl for static members, therefore getMemberDecl
+ // does not work for all member variables.
----------------
It took me a while to understand how the comment associate with the code here, maybe add `and we use the MemberExpr` in the comment?
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:142
}
+ if(isa<CXXMethodDecl>(D)) {
+ addToken(Loc, HighlightingKind::Method);
----------------
nit: clang-format.
As it is class-related, could you move it to Line 133 (immediately after the `Class` case), the same to the `FieldDecl`.
================
Comment at: clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp:140
+ struct $Class[[D]] {
+ double $MemberVariable[[C]];
+ };
----------------
could you add a test case for `static member`?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64617/new/
https://reviews.llvm.org/D64617
More information about the cfe-commits
mailing list