eduucaldas added inline comments.
================ Comment at: clang-tools-extra/clangd/SemanticSelection.cpp:49-51 + if (Node->getKind() == syntax::NodeKind::CompoundStatement) { + const auto *Tree = dyn_cast<syntax::Tree>(Node); + assert(Tree); ---------------- ================ Comment at: clang-tools-extra/clangd/SemanticSelection.cpp:52-55 + const syntax::Token *FirstToken = Tree->findFirstLeaf()->getToken(), + *LastToken = Tree->findLastLeaf()->getToken(); + assert(FirstToken->kind() == tok::TokenKind::l_brace); + assert(LastToken->kind() == tok::TokenKind::r_brace); ---------------- Take a look at `clang/include/clang/Tooling/Syntax/Nodes.h`, syntax constructs usually have nice classes with accessors. For instance `CompoundStatement` has the accessors `getLbrace` and `getRbrace` that seem to be exactly what you want. However these might not give exactly the first leaf and last leaf in the case of syntactically incorrect code. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D88553/new/ https://reviews.llvm.org/D88553 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits