[PATCH] D64257: [clangd] Added highlighting for non-builtin types

Haojian Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 9 01:59:46 PDT 2019


hokein added a comment.

could you please also update the patch description? "non-builtin" types are not precise, this patch only highlights the class and enum types.



================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:71
+
+    TagDecl *D = TL.getTypePtr()->getAsTagDecl();
+    if (!D)
----------------
nit: you could simplify the code like 

```
if (const auto* D = TL.getXXX)
  addToken(D->getLocation(), D);
return true;
```


================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:81
   void addToken(SourceLocation Loc, const Decl *D) {
+    if (isa<CXXConstructorDecl>(D)) {
+      addToken(Loc, HighlightingKind::Class);
----------------
nit: move this around `if (isa<RecordDecl>(D)) {` since they are related to `Class`, and we should have a comment describing the highlighting behavior of `class, constructor, and destructor`.


================
Comment at: clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp:87
+      typedef abc::$Class[[A]]<int> AAA;
+      enum class $Enum[[E]] {};
+      enum $Enum[[EE]] {};
----------------
could we split the enum case into a separate testcase? 

Thinking it further, we may want to highlight the enumerator as well.


================
Comment at: clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp:101
+    R"cpp(
+      struct $Class[[A]] {
+        $Class[[A]]();
----------------
this test case can be merged into the above case (we could add constructor/destructor to class B there)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D64257





More information about the cfe-commits mailing list