This revision was automatically updated to reflect the committed changes. Closed by commit rG159a26964840: [clangd] Add new semantic token modifier "virtual" (authored by ckandeler, committed by MaskRay).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D107145/new/ https://reviews.llvm.org/D107145 Files: clang-tools-extra/clangd/SemanticHighlighting.cpp clang-tools-extra/clangd/SemanticHighlighting.h clang-tools-extra/clangd/test/initialize-params.test clang-tools-extra/clangd/test/semantic-tokens.test clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
Index: clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp +++ clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp @@ -642,9 +642,14 @@ )cpp", R"cpp( class $Class_decl_abstract[[Abstract]] { - virtual void $Method_decl_abstract[[pure]]() = 0; - virtual void $Method_decl[[impl]](); + public: + virtual void $Method_decl_abstract_virtual[[pure]]() = 0; + virtual void $Method_decl_virtual[[impl]](); }; + void $Function_decl[[foo]]($Class_abstract[[Abstract]]* $Parameter_decl[[A]]) { + $Parameter[[A]]->$Method_abstract_virtual[[pure]](); + $Parameter[[A]]->$Method_virtual[[impl]](); + } )cpp", R"cpp( <:[deprecated]:> int $Variable_decl_deprecated[[x]]; Index: clang-tools-extra/clangd/test/semantic-tokens.test =================================================================== --- clang-tools-extra/clangd/test/semantic-tokens.test +++ clang-tools-extra/clangd/test/semantic-tokens.test @@ -23,7 +23,7 @@ # CHECK-NEXT: 4, # CHECK-NEXT: 1, # CHECK-NEXT: 0, -# CHECK-NEXT: 2049 +# CHECK-NEXT: 4097 # CHECK-NEXT: ], # CHECK-NEXT: "resultId": "1" # CHECK-NEXT: } @@ -49,7 +49,7 @@ # CHECK-NEXT: 4, # CHECK-NEXT: 1, # CHECK-NEXT: 0, -# CHECK-NEXT: 2049 +# CHECK-NEXT: 4097 # CHECK-NEXT: ], # Inserted at position 1 # CHECK-NEXT: "deleteCount": 0, @@ -72,12 +72,12 @@ # CHECK-NEXT: 4, # CHECK-NEXT: 1, # CHECK-NEXT: 0, -# CHECK-NEXT: 2049, +# CHECK-NEXT: 4097, # CHECK-NEXT: 1, # CHECK-NEXT: 4, # CHECK-NEXT: 1, # CHECK-NEXT: 0, -# CHECK-NEXT: 2049 +# CHECK-NEXT: 4097 # CHECK-NEXT: ], # CHECK-NEXT: "resultId": "3" # CHECK-NEXT: } Index: clang-tools-extra/clangd/test/initialize-params.test =================================================================== --- clang-tools-extra/clangd/test/initialize-params.test +++ clang-tools-extra/clangd/test/initialize-params.test @@ -88,6 +88,7 @@ # CHECK-NEXT: "readonly", # CHECK-NEXT: "static", # CHECK-NEXT: "abstract", +# CHECK-NEXT: "virtual", # CHECK-NEXT: "dependentName", # CHECK-NEXT: "defaultLibrary", # CHECK-NEXT: "functionScope", Index: clang-tools-extra/clangd/SemanticHighlighting.h =================================================================== --- clang-tools-extra/clangd/SemanticHighlighting.h +++ clang-tools-extra/clangd/SemanticHighlighting.h @@ -66,6 +66,7 @@ Readonly, Static, Abstract, + Virtual, DependentName, DefaultLibrary, Index: clang-tools-extra/clangd/SemanticHighlighting.cpp =================================================================== --- clang-tools-extra/clangd/SemanticHighlighting.cpp +++ clang-tools-extra/clangd/SemanticHighlighting.cpp @@ -240,6 +240,12 @@ return false; } +bool isVirtual(const Decl *D) { + if (const auto *CMD = llvm::dyn_cast<CXXMethodDecl>(D)) + return CMD->isVirtual(); + return false; +} + bool isDependent(const Decl *D) { if (isa<UnresolvedUsingValueDecl>(D)) return true; @@ -712,6 +718,8 @@ Tok.addModifier(HighlightingModifier::Static); if (isAbstract(Decl)) Tok.addModifier(HighlightingModifier::Abstract); + if (isVirtual(Decl)) + Tok.addModifier(HighlightingModifier::Virtual); if (isDependent(Decl)) Tok.addModifier(HighlightingModifier::DependentName); if (isDefaultLibrary(Decl)) @@ -898,6 +906,8 @@ return "deduced"; // nonstandard case HighlightingModifier::Abstract: return "abstract"; + case HighlightingModifier::Virtual: + return "virtual"; case HighlightingModifier::DependentName: return "dependentName"; // nonstandard case HighlightingModifier::DefaultLibrary:
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits