From 573a759b33b3636fdb86a0006789d8ec4c1843b9 Mon Sep 17 00:00:00 2001 From: eidheim Date: Mon, 27 Jul 2015 10:46:19 +0200 Subject: [PATCH] Slight change to Tokens::get_similar_token_offsets. --- src/Tokens.cc | 14 ++++++-------- src/Tokens.h | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Tokens.cc b/src/Tokens.cc index 7600cc8..f2fd316 100644 --- a/src/Tokens.cc +++ b/src/Tokens.cc @@ -20,15 +20,13 @@ clang::Tokens::~Tokens() { //This works across TranslationUnits! However, to get rename refactoring to work, //one have to open all the files that might include a similar token //Similar tokens defined as tokens with equal referenced cursors. -std::vector > clang::Tokens::get_similar_token_offsets(clang::Token& token) { +std::vector > clang::Tokens::get_similar_token_offsets(const std::string &usr) { std::vector > offsets; - auto referenced=token.get_cursor().get_referenced(); - if(referenced) { - auto referenced_usr=referenced.get_usr(); - for(auto &a_token: *this) { - auto a_referenced=a_token.get_cursor().get_referenced(); - if(a_referenced && referenced_usr==a_referenced.get_usr() && token.get_spelling()==a_token.get_spelling()) { - offsets.emplace_back(a_token.offsets); + for(auto &token: *this) { + if(token.get_kind()==clang::Token_Identifier) { + auto referenced=token.get_cursor().get_referenced(); + if(referenced && usr==referenced.get_usr()) { + offsets.emplace_back(token.offsets); } } } diff --git a/src/Tokens.h b/src/Tokens.h index 96366cd..7f1ea1b 100644 --- a/src/Tokens.h +++ b/src/Tokens.h @@ -13,7 +13,7 @@ namespace clang { Tokens(CXTranslationUnit &cx_tu, const SourceRange &range); public: ~Tokens(); - std::vector > get_similar_token_offsets(clang::Token& token); + std::vector > get_similar_token_offsets(const std::string &usr); std::vector > get_cxx_methods(); private: CXToken *cx_tokens;